上传图片 API: wx.chooseImage() 和 wx.uploadFile()
wx.chooseImage({ count: 1, // 默认9 sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有 sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有 success: function(res) { console.log(res.tempFiles); // 图片的本地文件列表,每一项是一个file对象 // 结果: [{path: "http://tmp/wx0ffcd03a1dfdc451.o6zAJs7JDPzeAscW09c_BG24fpdU.6919dfcada671055948023075afd859a.jpg", size: 61034}, ...] console.log(res.tempFilePaths); // 图片的本地文件路径列表 // 结果: ["http://tmp/wx0ffcd03a1dfdc451.o6zAJs7JDPzeAscW09c_BG24fpdU.6919dfcada671055948023075afd859a.jpg"] var tempFilePaths = res.tempFilePaths; wx.uploadFile({ url: '/your_url/receive_file', // 图片上上传的地址,请求方式默认为POST且不可更改 filePath: tempFilePaths[0], // 要上传的文件的路径,注:一次只能上传一个文件,若要上传多张图片,请使用递归 name: 'file', // 文件对应的键名,后端可以通过这个key获取到文件的二进制内容 formData:{ 'user_id': '123', 'name': 'Jack', 'age': 18 }, success: function(res){ var data = res.data //do something } }) } })
如果需要上传多张图片,那么需要把wx.uploadFile()封装成一个函数,判断图片上传是否完成,如果没有完成,则一直调用这个函数,否则,图片上传完成。