uniapp开发App上传formData文件

项目场景:

在uniapp+vue3+APP中上传文件

问题描述

在uniapp中上传文件(FormData)发现uni.request不支持FormData
在这里插入图片描述

  const formData = new FormData()
        formData.append('avatarfile', data)

原因分析:

uni.request 请求发送格式Object|String|ArrayBuffer三种格式


解决方案:

uniapp也给了解决办法uni.uploadFile(OBJECT)
在这里插入图片描述
filePath是图片文件路径
name是FormData字段(avatarfile)
formData是file文件数据

这里就不使用FormData

  const formData = new FormData()
        formData.append('avatarfile', data)

这里借用chooseImage获取tempFilePathstempFiles

uni.chooseImage({
		count: 1, //默认9
		sizeType: ['compressed'], //可以指定是原图还是压缩图,默认二者都有
		sourceType: ['album', 'camera'], //从相册选择
		success: function(res) {
			const uploadTask = uni.uploadFile({
				url: action,
				filePath: res.tempFilePaths[0],
				name: 'avatarfile', // 在FormData 中文件对应的属性名
				formData: res.tempFiles[0], // 除文件外其他所有数据,传对象,会默认转换为 FormData
				header: 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'
						});
					}
				}
			});
		}
	});
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值