通用 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 小时前
力扣5. 最长回文子串
前端·javascript·面试
Wang's Blog3 小时前
Go-Zero项目开发4: 用户服务搜索、详情与统一错误处理
开发语言·golang
我星期八休息4 小时前
网络编程—应用层HTTP协议
linux·运维·开发语言·前端·网络·网络协议·http
梅雅达编程笔记4 小时前
零基础学 Python 第14章 | 模块、包与第三方库
开发语言·python·django·numpy·pandas
Mr__Miss4 小时前
Java泛型完全指南:从入门到精通
java·开发语言·python
赵庆明老师4 小时前
Vben精讲:14-Vben远程加载语言包
开发语言·vben
不好听6134 小时前
前端路由完全指南(下篇):懒加载、History 栈与工程化实践
前端·react.js
hehelm5 小时前
AI大模型接入SDK—通用模块设计
linux·开发语言·c++
触底反弹6 小时前
🔥 从零搭建 RAG 知识库:爬虫→分词→向量化→检索,一步都不能错
javascript·人工智能·面试
圣光SG6 小时前
Java Web入门基础知识笔记
java·前端·笔记