通用 vue 页面 js 下载任何文件的方法

1 通用 vue 页面 js 下载任何文件的方法

2 需要文件地址可以在地址栏直接打开 file:{url:http"//xxxxx}

3 例如 文件在地址直接回车 打开 是个文件流的形式

4 下载按钮

<el-button type="primary" link size="small" @click="downloadFile(file)">

<el-icon>

<Download />

</el-icon> 下载

</el-button>

javascript 复制代码
const downloadFile = async (file) => {
    try {
        const response = await fetch(file.url, {
            headers: headers.value, // 如果需要认证,带上 headers
        });
        if (!response.ok) throw new Error('下载失败');
        const blob = await response.blob();
        const link = document.createElement('a');
        const blobUrl = URL.createObjectURL(blob);
        link.href = blobUrl;
        link.download = file.name;
        document.body.appendChild(link);
        link.click();
        document.body.removeChild(link);
        URL.revokeObjectURL(blobUrl);
    } catch (error) {
        console.error('下载失败', error);
        ElMessage.error('下载失败');
    }
};
相关推荐
子兮曰3 天前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
子兮曰3 天前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
小羊没烦恼!3 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
前端小万3 天前
写公众号赚了 3000 块后,我做了一款叫 "一键成稿" 的软件
前端·微信小程序
爱勇宝3 天前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
三十而立洋3 天前
Cookie 详解:从产生到安全,一次讲透
前端·javascript
伞伞悦读3 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
卡布鲁3 天前
把一个 Vite + Vue3 应用塞进 qiankun (React + Umi3) 主站:十个坑的复盘
前端·javascript·react.js
C语言小火车3 天前
C/C++ 为什么需要编译器?
开发语言·c++
李少兄3 天前
JavaScript 隐式全局变量解析
javascript