首先,app拍照,选择uni.chooseImage, 拍完之后上传接口要求formData格式,但是uniapp不能 new File, 所以无法转换。
可以使用plus.uploader.createUpload 来上传formData格式.
完美!
let uploadFileTask = plus.uploader.createUpload(
process.env.VUE_APP_BASE_API + UPLOAD_API, {
method: "POST",
headers: {
// 修改请求头Content-Type类型 此类型为文件上传
"Content-Type": "multipart/form-data",
}
},
// data:服务器返回的响应值 status: 网络请求状态码
(data, status) => {
// 请求上传文件成功
const resData = data
if (status == 200) {
// 获取data.responseText之后根据自己的业务逻辑做处理
const result = resData.responseText;
const resultData = JSON.parse(result)
if (resultData.code === 200) {
// 请求成功
this.handleCreate(resultData.data)
return
}
this.$tip.toast(message)
} else { // 请求上传文件失败
console.log("上传失败", status)
}
}
)
// 设置请求头部信息
uploadFileTask.setRequestHeader("Authorization", `Bearer ${uni.getStorageSync(ACCESS_TOKEN)}`)
uploadFileTask.addFile(file, {
key: "file" // 填入图片文件对应的字段名
});
// 开始上传
uploadFileTask.start()