vue 文件转换二进制_vue+axios下载后端返回的二进制流文件

本文介绍了如何在Vue中通过axios处理后端返回的二进制流文件,以实现数据导出和PDF下载。通过设置'responseType'为'blob',然后创建Blob对象,利用a标签进行文件下载。对于POST方式下载PDF的一个疑惑,当不包含特定参数时,文件打开需要密码,而添加了{admin: '', keys: '123', keyword: '123'}后,文件可以正常打开,原因未明。" 136044460,10723508,Android ROM定制:增大system分区,"['Android开发', '系统定制', '分区调整']

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

blob

BLOB就是使用二进制保存数据。

数据的导出,get方式

/**

* 数据导出

*/

exportData (searchForm) {

this.$http({

method: 'get', // 请求方式

url: Apis.EXPORT_DATA, // 请求地址

params: { // 请求参数

startDate: searchForm.startDate,

endDate: searchForm.endDate,

orderNo: searchForm.orderNo,

carNo: searchForm.carNo,

entryBy: searchForm.entryBy,

status: searchForm.status,

insurer: searchForm.insurer

},

responseType: 'blob' // 重点,请求的数据类型

})

.then(response => {

/* 兼容ie内核,360浏览器的兼容模式 */

if (window.navigator && window.navigator.msSaveOrOpenBlob) {

let blob = new Blob([response.data])

window.navigator.msSaveOrOpenBlob(blob, '数据导出.xls')

} else {

/* 火狐谷歌的文件下载方式 */

var blob = new Blob([response.data])

var downloadElement = document.createElement('a')

var href = window.URL.createObjectURL(blob)

downloadElement.href = href

downloadElement.download = '数据导出.xls'

document.body.appendChild(downloadElement)

downloadElement.click()

document.body.removeChild(downloadElement)

window.URL.revokeObjectURL(href)

}

})

.catch(response => {

console.log(response)

})

}

文件的下载,post方式

downloadOrder (row) {

this.$http.post(Apis.DOWNLOAD+`/${row.cargoOderId}`, {admin: '', keys: '123', keyword: '123'}, {responseType: 'blob'})

.then(response => {

if (window.navigator && window.navigator.msSaveOrOpenBlob) {

let blob = new Blob([response.data])

window.navigator.msSaveOrOpenBlob(blob, `${row.orderNo}.pdf`)

} else {

var blob = new Blob([response.data])

var downloadElement = document.createElement('a')

var href = window.URL.createObjectURL(blob)

downloadElement.href = href

downloadElement.download = `${row.orderNo}.pdf`

document.body.appendChild(downloadElement)

downloadElement.click()

document.body.removeChild(downloadElement)

window.URL.revokeObjectURL(href)

}

})

.catch(response => {

console.log(response)

})

}

疑惑:{admin: '', keys: '123', keyword: '123'},为什么要使用这句代码?

bug:如果没有上面那句代码,下载的pdf文件打开居然需要密码,可我没有设置密码啊。设置了上面那句代码以后,pdf文件才可以打开。一脸懵逼....,哪位大佬可以帮忙解惑一下,非常感谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值