前端获取后台文件导出

这段代码展示了如何利用axios库实现文件的下载功能。通过设置响应类型为arraybuffer,获取到文件内容,然后创建一个新的Blob对象,利用a标签的click事件触发文件下载,同时释放内存。整个过程包括设置请求参数,处理响应头获取文件名,以及创建和触发下载链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DownloadOriginalFile () {
//直接跳转下载
// window.open(`../../../../UploadFiles/CrudeOil/${this.selectedRow.fileStoreName}`)
let data = {
id: this.selectedRow.id
}
//文件流下载
axios.request({
url: '  ',
params: data,
method: 'get',
responseType: 'arraybuffer'
}).then(res => {
console.log(111, res)
var temp = res.headers["content-disposition"]
var filenameRegex = /filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/;
var matches = filenameRegex.exec(temp);
var filename
if (matches != null && matches[1]) {
filename = matches[1].replace(/['"]/g, '');
}
let a = document.createElement('a')
let blob = new Blob([res.data])
let objectUrl = URL.createObjectURL(blob)
a.setAttribute('href', objectUrl)
a.setAttribute('target', '_self')
a.setAttribute('download', filename)
a.click()
// console.log(objectUrl);
URL.revokeObjectURL(objectUrl) // 释放内存
// if (res.data.code == 200) {
// } else {
// this.$message.info(res.data.message);
// }
}, res => {
console.log(res)
})

},

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值