选择文件后返回file对象
detail:
file:
name: "小程序day4.pdf"
size: 1127151
time: 1603221415
type: "file"
url: "http://tmp/ujk8a7bS0NGse5099783ae4992420d02bc168fe82391.pdf"
__proto__: Object
index: 0
name: ""
不知如何将file转成{binary}
后端要求数据 uploadfile: (binary)
savePath: cePin/ 为这样
在PC端可以
var fd =new FormData()
fd.set("uploadfile",this.reportFile)
fd.set("savePath",'cePin/')
将数据直接传给后端
小程序没有formData自己仿写了如下,但二进制格式不知道如何处理出来
async fileReq(){
let cookie=uni.getStorageSync('token')
uni.request({
url:'http://xz.sanzang001.xyz:10015/system/util/uploadFileAll',
method: 'POST',
header: {
'content-type':'multipart/form-data; boundary=XXX',
'cookie':cookie[1]
},
data:'\r\n--XXX' +
'\r\nContent-Disposition: form-data; name="uploadfile"' +
'\r\n' +
'\r\n' +数据1+
'\r\n--XXX' +
'\r\nContent-Disposition: form-data; name="savePath"' +
'\r\n' +
'\r\n' +'cePin/'+
'\r\n--XXX--',
success:function(res){
console.log(res,'fileupOk')
}
})
}
g跪求大佬解答
建议你去看下uniApp中是如何使用上传的,这些功能他肯定都有相关的封装的,直接用微信的可能会走很多弯路
使用request请求uploadFile数据为{object object}格式不对,无法请求正确的数据,
用wx.uploadFile
const file = event.detail.file;
this.fileList = JSON.parse(JSON.stringify(file))
let cookie = uni.getStorageSync('token')
uni.uploadFile({
url: 'http://xz.sanzang001.xyz:10015/system/util/uploadFileAll',
filePath: this.fileList.url,
name: 'file',
method:'POST',
header: {
'content-type':'multipart/form-data',
'cookie':cookie[0]
},
formData: {
"uploadfile":this.fileList,
"savePath":'cePin/'
},
success(res) {
// 上传完成需要更新 fileList
console.log(res)
},
})