解决办法:
// #ifdef H5
const imgBlob = await fetch(res.tempFilePaths[0]).then((r) => r.blob())
const imgFile = new File([imgBlob], res.tempFiles[0].name, { type: imgBlob.type })
let form = new FormData()
form.append('avatarfile', imgFile)
console.log(imgFile, '这个是什么样111111子')
// console.log(file)
// 正式将转好的File对象进行上传
uni.uploadFile({
url: `/api/Img`, //改为你的接口
name: 'avatarfile',
file: imgFile,
fileType: 'image',
success: (res) => {
userInfo.value.picAddress = res.data
console.log(res.data, '修改成功')
},
header: {
// 需要带的请求头,token等等
// 'content-type': 'multipart/form-data',
},
})
// #endif
因为 在H5端是会把临时路径图片,改成blob类型的,所以你要改成 转成file文件对象
官网文档也说了 file参数是对于H5,其他的都用预filePath 即可,就可以传到后端,否则会连接不上 报错500.
结果拿到后:
注意:
不要乱加header
其余你可以借鉴 base64转格式都有 我这里是将h5 改好
至于后端代码 是node 和之前代码一样即可 不用改动uni-app - H5 通过 uni.uploadFile() 上传 Blob 文件路径图片图像,文件没有后缀扩展名(上传图片到服务端文件没有后缀名,服务端判断是无效的后缀名文件)终极且完美解决方案_uni.unloadfile 压缩后上传无后缀-CSDN博客