[图片]刚接触小程序,就想做个仿b站项目,模拟发布投稿,json是分区,标题一类的,file就是视频,但是接口写不出来,官方文档我看不明白,希望大佬可以提点我一下
wx.chooseVideo()同时传参file和json问题?如图,我后端是两个参数,第一个是file,第二个是json类型的参数,我不知道怎么传递参数。 [图片] postman测试结果如下: [图片] [图片] 前端js ouload_vedio() { var token = wx.getStorageSync('token') var _this = this; let data = { "title":"筱","description":"xoiasjoa","type":"1","area":"1" } wx.chooseVideo({ sourceType: ['album', 'camera'], maxDuration: 60, camera: 'back', success(res) { const uploadTask = wx.uploadFile({ url: 'http://localhost:8066/upload', // 上传到服务器 filePath: res.tempFilePath, name: 'file', header: { "Content-Type": "multipart/form-data", 'token':token }, formData:data, success(res) { const data = JSON.parse(res.data); // 坑一:与wx.request不同,wx.uploadFile返回的是json字符串,需要自己转为JSON对象格式 console.log(data); } }); uploadTask.onProgressUpdate((res) => { const uploadProgress = res.progress; if (uploadProgress < 100) { // 坑2:wx.uploadFile本身有一个this,所以要通过外部var _this = this 把this带进来 _this.setData({ uploadPercent: uploadProgress }); } else if (uploadProgress === 100) { _this.setData({ uploadPercent: 50 }); } console.log('上传进度', res.progress); console.log('已经上传的数据长度', res.totalBytesSent); console.log('预期需要上传的数据总长度', res.totalBytesExpectedToSend) }); } }) }, 我的第一个测试: 我不传data,然会后端我直接把第二个参数去掉了,写在方法里。 [图片] 前端不传formdata,就不报错。这样可以正常运行, 然后改成这样(还原第二个参数) formData:{ data: { "title":"筱","description":"xoiasjoa","type":"1","area":"1" 报错如下: code: "500", msg: "Content type 'application/octet-stream' not supported", data: null
2023-10-12