如图,我后端是两个参数,第一个是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
刚接触小程序,就想做个仿b站项目,模拟发布投稿,json是分区,标题一类的,file就是视频,但是接口写不出来,官方文档我看不明白,希望大佬可以提点我一下