通用 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 小时前
[python]FastAPI + 自建SSE 踩坑全记录
开发语言·python·fastapi
Aolith3 小时前
React 路由守卫:我用一个组件替代了 Vue 的 beforeEach
前端·react.js
Daybreak3 小时前
从 PDD、DDD、SDD 到 TDD:我是如何用一套 Agent 工程方法论推进 My-Notion 的
前端
qydz113 小时前
杰理开发板做TWS耳机类型方案分享(1)
开发语言·pcb工艺·嵌入式开发·杰理科技
HjhIron4 小时前
从零实现一个待办事项应用:前端必学的Ajax与Node.js实战
前端·后端
yingyima4 小时前
JavaScript 正则表达式:从零开始的实战对比
前端
Cloud_Shy6184 小时前
解读《Effective Python 3rd Edition》:从练气到老魔(第六章 Item 40 - 43)
android·开发语言·人工智能·笔记·python·学习方法
Sammyyyyy4 小时前
月之暗面 Kimi Code 0.4.0 发布,终端 AI 编码助手全面采用 TypeScript,实现毫秒级启动
前端·javascript·人工智能·ai·typescript·servbay
范什么特西4 小时前
配置文件xml和properties
xml·前端
半只小闲鱼4 小时前
配置计划模块通用办公设备家具批复数合计计算
开发语言·python