1 http协议上传文件
const formData = new FormData();
formData.append('file', params.file);
this.$axios({
method: 'post',
url: url, // 请求地址
data: formData,
headers: {
'Content-Type': 'multipart/form-data'
},
}).then(data => {
支持上传多个文件,以及附带其它参数, 就是http请求中的multipart/form-data,它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开。既可以上传键值对,也可以上传文件。当上传的字段是文件时,会有Content-Type来表名文件类型;content-disposition,用来说明字段的一些信息;
由于有boundary隔离,所以multipart/form-data既可以上传文件,也可以上传键值对,它采用了键值对的方式,所以可以上传多个文件。
2 binary
相当于Content-Type:application/octet-stream,从字面意思得知,只可以上传二进制数据,通常用来上传文件,由于没有键值,所以,一次只能上传一个文件。
参考地址 blog.csdn.net/qq_33706382…
下载文件
this.$axios({
method: 'get',
url: url, // 请求地址
headers: {
'Content-Type': 'multipart/form-data'
},
responseType: 'blob' // 表明返回服务器返回的数据类型
}).then(data => {
const content = data.data;
const blob = new Blob([content])
const fileName = '模版.xlsx'
if ('download' in document.createElement('a')) { // 非IE下载
const elink = document.createElement('a')
elink.download = fileName
elink.style.display = 'none'
elink.href = URL.createObjectURL(blob)
document.body.appendChild(elink)
elink.click()
URL.revokeObjectURL(elink.href) // 释放URL 对象
document.body.removeChild(elink)
} else { // IE10+下载
navigator.msSaveBlob(blob, fileName)
}