vue3 +element upload 组件应该避免遇到的问题

我们change时间 组件回调的文件格式是一个数组  结构差不多是这样的
file = [
{
name:‘xx’,
size:'',
raw:{}, // file类型
uid:'xxxx'
}
]
后端需要的通常的是file类型,所以我们不能把数组传过去,应该把file.raw对象通过formData传过去,

```bash
let formData = new FormData() // form数据上传
formData.append('files', fileList.raw) // file文件
formData.append('itemName', itemName) 如果后端还要更多的参数的,就这样添加
formData.append('modelName', modelName) 如果后端还要更多的参数的,就这样添加
uploadActionAjax[type as string](formData).then(_ => { // 把formData直接当参数就可以})
注意------------请求头也需要修改------vvvvvv

`在这里插入图片描述
然后是下载功能---------------
然后后端这个时候返回一般都是二进制 通常为这种格式
在这里插入图片描述
这里有一个坑-----------------------注意!!!!!!!!!!!!!!!!!!

请求接口应该加上响应类型,注意!!
如果是arraybuffer类型需要new blob , 如果不是arraybuffer是blob! 注意请不要new Blob 不然下载是乱码
load: function loadFile(data: ReqParms) {
		return http.get(`${rootBase}/runtime`, data, { responseType: 'arraybuffer' // 必须加 })
	}
uploadActionAjax[type as string](data).then(_ => {
				if (_) {
					let blob = new Blob([_]) // 这里转blob要看我们的请求 ,
					console.log(blob)
					let a = document.createElement('a')
					let href = window.URL.createObjectURL(blob)
					a.href = href
					a.download = fileList.name
					document.body.appendChild(a)
					a.click()
					document.body.removeChild(a)
					window.URL.revokeObjectURL(href)
				}
			})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

颜笑·

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值