项目场景:
在uniapp+vue3+APP中上传文件
问题描述
在uniapp中上传文件(FormData)发现uni.request不支持FormData
const formData =newFormData()
formData.append('avatarfile', data)
原因分析:
uni.request
请求发送格式Object|String|ArrayBuffer三种格式
解决方案:
uniapp也给了解决办法
uni.uploadFile(OBJECT)
filePath是图片文件路径
name是FormData字段(avatarfile)
formData是file文件数据
这里就不使用FormData
const formData =newFormData()
formData.append('avatarfile', data)
这里借用chooseImage获取
tempFilePaths
,
tempFiles
uni.chooseImage({count:1,//默认9sizeType:['compressed'],//可以指定是原图还是压缩图,默认二者都有sourceType:['album','camera'],//从相册选择success:function(res){const uploadTask = uni.uploadFile({url: action,filePath: res.tempFilePaths[0],name:'avatarfile',// 在FormData 中文件对应的属性名formData: res.tempFiles[0],// 除文件外其他所有数据,传对象,会默认转换为 FormDataheader: uploadHeader,success:res=>{if(parseInt(res.data.code)===200){
toast.value.show({title:'修改成功!',type:'success',position:'top'});
userStore.GetInfo();}else{
toast.value.show({title:'修改失败!',type:'error',position:'top'});}}});}});
版权归原作者 喵喵虫 所有, 如有侵权,请联系我们删除。