我们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)
}
})