vue 下载文件

前端直接下载文件

// 处理blob二进制流进行文件下载
export function download(data, name, type) {
    function isBlobOrArrayBuffer(obj) {
        return obj instanceof Blob || obj instanceof ArrayBuffer
    }
    const link = document.createElement('a')
    let blob = type ? new Blob([isBlobOrArrayBuffer(data)?data:data?.data], {type}) : new Blob([isBlobOrArrayBuffer(data)?data:data?.data])
    // link.style.display = 'none'
    link.href = URL.createObjectURL(blob)
    //下载文件名
    link.download = name
    document.body.appendChild(link)
    link.click()
    document.body.removeChild(link)
}
// download(blob, '获奖信息数据.xlsx')

用的时候直接引入

import { download } from "@/utils/tools.js";

获取blob直接下载

// 获取blob二进制流
const blob = await fetch(url).then(res => res.blob());  
download(blob, '文件.pdf');  

接口返回文件流的处理方式

接收后台返回的文件流下载文件

// 导出Excel
export function exportExcel(params) {
    return request({
        url: baseUrl + `export-excel`,
        method: "get",
        responseType: "blob",
        params,
    });
}
download(res, "excel.xlsx");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值