问题模块 |
---|
API和组件 |
如果form表单中 有图片这样的字段 , 如何将上传的图片和 form表单提交的数据关联上?
网友回复
那就等全部上传完再保存表单,用伪代码表示就是:
task.all([upload1, upload2, upload3]).then(save);
谢谢解答, 但是有点疑问。
3楼的方法可能会上传很多没用的图片啊。 4楼的方法 ,如果涉及到多图上传怎么办?
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];
}
});
}
选择图片的时候就上传,上传完成返回值附到表单中的字段,再提交表单
目前想到一个别的办法, 先提交form表单 然后返回 标识, 然后在上传图片,把标识传过去做关联。 不知掉有没有更好的办法
我现在的做法是 form表单提交的时候 同时上传图片 ,然后等待图片上传完之后 把服务器端返回的文件名赋值到formData ,目的是把这个文件名存到图片字段, 结果发现 上传图片好像是异步的, 所以导致 表单可能提交完了以后, 图片上传才返回结果, 导致formData中没有我要的图片名称值。