form表单和图片
发布于 6 年前 作者 yongdeng 15424 次浏览 来自 问答

如果form表单中 有图片这样的字段 , 如何将上传的图片和 form表单提交的数据关联上?

6 回复

那就等全部上传完再保存表单,用伪代码表示就是:

task.all([upload1, upload2, upload3]).then(save);

选择图片的时候就上传,上传完成返回值附到表单中的字段,再提交表单

formSubmit: function(event) {

    var params = {

        name: event.detail.value.name,

        …

    };

    // 先上传图片

    wx.uploadFile({

url: ‘https://…/upload’,

filePath: that.data.tempFilePath,  // wx.chooseImage所得

name: ‘file’,

success: function(res){

var data = res.data

params.filePath = data.filemame;

// 保存表单

wx.request({

url: ‘https://…/upload’,

data: params,

success: function(res) {

}

})

}

    })

},

imageTap: function() {

wx.chooseImage({

  success: function(res) {

    that.data.tempFilePath = res.tempFilePaths[0];

    }

    });

}

谢谢解答, 但是有点疑问。

3楼的方法可能会上传很多没用的图片啊。4楼的方法 ,如果涉及到多图上传怎么办?

目前想到一个别的办法, 先提交form表单 然后返回 标识, 然后在上传图片,把标识传过去做关联。  不知掉有没有更好的办法

我现在的做法是 form表单提交的时候  同时上传图片 ,然后等待图片上传完之后 把服务器端返回的文件名赋值到formData ,目的是把这个文件名存到图片字段,  结果发现 上传图片好像是异步的, 所以导致 表单可能提交完了以后, 图片上传才返回结果, 导致formData中没有我要的图片名称值。

回到顶部