import axios from 'axios'
import { message } from 'ant-design-vue'
const getFile = ({ url, params, tail, type }) => {
let data = type ? 'data' : 'params'
type = type || 'get'
return new Promise((resolve, reject) => {
axios({
headers: {
'hello': 'world'
},
withCredentials: true,
url,
method: type,
[`${data}`]: params,
responseType: 'blob'
}).then(res => {
console.log('export_file got res === ', res)
let resHeaders = res.headers
let resFileName = resHeaders['content-disposition'] || ''
let fileName = decodeURIComponent(resFileName.match(/filename\*\=(.*)/)[1]).split("utf-8''")[1]
const blob = new Blob([res.data], { type: 'application/vnd.ms-excel' })
const a = document.createElement('a')
a.href = URL.createObjectURL(blob)
a.download = `${fileName}${tail}`
a.click()
URL.revokeObjectURL(a.href)
a.remove()
}).catch(err => {
console.log('export_file catch error === ', err)
message.error('文件導(dǎo)出失敗')
reject(`faild: ${err}`)
})
})
}
export default getFile
vue如何處理文件流,下載excel文件
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 前端界面點(diǎn)擊一個生成報(bào)文按鈕,調(diào)用后臺接口,后臺接口返回一個鏈接地址:url/xmlFile.xml xml文件瀏...
- 要求導(dǎo)出excel文件。當(dāng)點(diǎn)擊下載模板或下載反饋結(jié)果,axios發(fā)起后端接口請求,返回的數(shù)據(jù)獲取 response...
- 這里介紹兩種方法,使用 Blob對象 和 使用 js-file-download這兩種方法下載的文件都不會亂碼,但...
- 以前的文件下載可以直接通過a標(biāo)簽鏈接跳轉(zhuǎn),或者window.open()等都是打開頁面方式直接處理。但這次的vue...
- 原文鏈接:https://blog.csdn.net/samarket/java/article/details/...