通用 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自动化测试7步落地法:用python在线运行省掉90%环境配置时间
java·开发语言·人工智能·python·log4j·ai编程
后台模板学习24 分钟前
从0到1用Vite构建电商订单系统前端性能优化方案
前端
Wang's Blog24 分钟前
Vibe Coding一人即团队系列58: HTML演示文稿自动生成
前端·人工智能·html
tedcloud12335 分钟前
OpenLogi 怎么搭建?用 Rust 打造一个轻量的 Logitech 外设管理工具
linux·运维·服务器·开发语言·后端·rust·开源
FoldWinCard40 分钟前
基于k8s高可用web集群
前端·容器·kubernetes
神探小白牙41 分钟前
海康视频在vue2.0中的使用
前端·音视频
Tanjia_kiki1 小时前
谷歌浏览器中F12编辑并重发请求
开发语言·前端·javascript
程序猿编码1 小时前
基于GGML的C++17轻量化语音推理引擎:说话人识别与语音分析技术全解析
开发语言·c++·pytorch·深度学习·神经网络·大模型
honkun61 小时前
vue 表格组件 vxe-table 实现拖拽列字段自动生成透视表汇总
前端·javascript·vue.js
新中地GIS开发老师1 小时前
WebGIS开发入门 | 从 Web 开发到地图开发,差别在哪儿?
前端·vue·webgis