通用 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 分钟前
Gradle构建工具 Groovy/Kotlin DSL的现代化自动化构建工具
开发语言·kotlin·自动化
赏金术士4 分钟前
Kotlin 协程与挂起函数(Coroutines & suspend)入门到实战
android·开发语言·kotlin
贫民窟的勇敢爷们18 分钟前
React跨平台能力,打破前端开发的平台边界
前端·react.js·前端框架
y = xⁿ30 分钟前
Java并发八股学习日记
java·开发语言·学习
你很易烊千玺35 分钟前
JS 数组所有变态遍历・完整案例 + 场景 + 对比
javascript·数组
xifangge202537 分钟前
【深度排障】从 OS 底层寻址剖析 javac 不是内部或外部命令 核心报错:变量空间隔离与自动化部署终极范式
java·开发语言·jdk·自动化
肖恩想要年薪百万42 分钟前
JSP中常用JSTL标签
java·开发语言·状态模式
lifejump1 小时前
Dede(织梦)CMS渗透测试(all)
前端·网络·安全·web安全
l1t1 小时前
在aarch64机器上安装clang来生成codonjit python模块
开发语言·python
扬帆破浪1 小时前
sidecar崩溃后前端怎么续命 重启策略与状态保留
前端·人工智能·架构·开源·知识图谱