form表单和图片

发布于 7 年前作者 yongdeng15607 次浏览最后编辑 7 年前来自 ask

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

6 回复
hzhao
hzhao1 楼6 年前

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

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

jiehe
jiehe2 楼6 年前

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

yong42
yong423 楼6 年前

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];

    }

    });

}

wenyong
wenyong4 楼6 年前

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

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

fdong
fdong5 楼6 年前

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

xfeng
xfeng6 楼5 年前

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