图片上传过程中需要在formData中添加其他数据,用于数据更新,代码如下
// 上传图片接口 doUpload: function (e) { var that = this // 选择图片 console.log( 'ID:' , e.target.id) wx.chooseImage({ count: 1, sizeType: [ 'compressed' ], sourceType: [ 'album' , 'camera' ], success: function (res) { util.showBusy( '正在上传' ) var filePath = res.tempFilePaths[0] // 上传图片 wx.uploadFile({ url: config.service.uploadUrl, filePath: filePath, name: 'file' , data: { ID: e.target.id, name: 'aaaaaaaaa' }, success: function (res) { util.showSuccess( '上传图片成功' ) console.log( '返回值:' , res) that.setData({ List: res.data.data[0] }) }, fail: function (e) { util.showModel( '上传图片失败' ) } }) }, fail: function (e) { console.error(e) } }) }, |
server 端代码如下
const { uploader } = require( '../qcloud' ) const { mysql } = require( '../qcloud' ) module.exports = async ctx => { // 获取上传之后的结果 // 具体可以查看: console.log( '##############################' ); console.log(ctx.request.body); console.log( '#############################' ); const data = await uploader(ctx.req) //console.log(data); var imgUrl = data.imgUrl; //console.log(data.imgUrl); var ID = ctx.request.body.ID ; //console.log(ID); var res = null ; var sql = "update t_zone set f_img='" + imgUrl + "' where f_id=" + ID; await mysql.schema.raw(sql) res = await mysql.schema.raw( "select * from t_zone where 1=1 " ) ctx.state.data = res; //ctx.state.data = data } |
不知道怎么把ID和name值取出,请大家帮我看看。
formidable可以试试,我用的这个