问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

vue 附件下载实现5种方法

发布网友 发布时间:2024-10-13 16:22

我来回答

1个回答

热心网友 时间:2024-11-14 05:46

第一种方法:

通过创建超链接,使用a标签向后端发送get请求,并为a标签添加download属性。这种方式通过在a标签中写入地址,并用js触发点击,实现访问文件地址即下载文件。

代码示例:

>下载

downloadFile(url, fileName, flieId, type) {

let link = document.createElement('a');

link.style.display = 'none';

link.href = baseUrl + '/xxx/xxx/xxx?flieId=' + flieId;

document.body.appendChild(link);

link.click();

}

第二种方法:

利用window.open()下载。window.open()打开一个新网页,直接在新网页访问文件地址即可下载。此时后端返回的是文件流,无需再次打开url进行下载。

代码示例:

downloadFile() {

window.open(baseUrl + '/xxx/xxx/xxx/getTemplate?templateCode=manual_pc', '_self');

}

第三种方法:

通过创建iframe方式。创建iframe,设置src属性指向文件下载地址,并将iframe设置为不可见。

代码示例:

handleExport(row) {

var elemIF = document.createElement('iframe');

elemIF.src = 'user/downloadExcel?snapshotTime=' + formatDate(new Date(row.snapshotTime), 'yyyy-MM-dd hh:mm') + '&category=' + row.category;

elemIF.style.display = 'none';

document.body.appendChild(elemIF);

}

第四种方法:

以文件流形式,通过发送post请求,使用blob格式实现下载功能,适用于图片、pdf及svg文件。

代码示例:

downloadFile(fileName, fileUrl) {

if (!fileUrl) {

return;

}

let url = window.URL.createObjectURL(new Blob([fileUrl]));

let link = document.createElement('a');

link.style.display = 'none';

link.href = url;

link.setAttribute('download', fileName);

document.body.appendChild(link);

link.click();

}

第五种方法:

使用ajax原生方法实现下载。通过创建XMLHttpRequest对象,设置请求类型、响应类型等,并在请求成功后生成下载链接。

代码示例:

newFileNameClick(url,name) {

var xReq = new XMLHttpRequest();

xReq.open('GET', url, true);

xReq.responseType = 'blob';

xReq.onload = function () {

var url = window.URL.createObjectURL(xReq.response);

var a = document.createElement('a');

a.href = url;

a.download = name;

a.click();

a.remove();

};

xReq.send();

}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
ipad输入键盘变小了 金黄色的鱼肉 这是鲶鱼吗?为啥有八根胡子。能吃不?味道咋样。。。 可塑橡皮有毒害吗可塑橡皮有没有毒害 小米手机应用锁密码忘了怎么解除还不想恢复出厂模式 欢乐斗地主得到的包箱里开的那个宝宝去那里领 混凝土外加剂的使用方法 混凝土外加剂使用注意事项 为什么观众喜欢在直播间买东西? 梦见别人开口向我借钱 更换发动机发动机号会变吗 什么是解锁股 股市解锁什么意思 顺德长鹿农庄好不好玩啊?是不是有很多的表演啊?门票大概多少钱??_百度... 长沙到厦门多少公里_长沙到厦门高铁多长时间 佛山长鹿农庄有什么好玩的 支持北斗的手机哪款好 评茶师工资和前景怎样 龙岩学茶艺培训有前途吗龙岩学茶艺工资高不高,天才网 在茶店上班工资高吗 茶山哪个厂工资高 八月或有台风影响深圳 这个插画上的女人是谁?游戏上的...? 请问这幅画的作者是谁?写的看不出来。 请问画这个的作者是谁。。 ai怎么调大小? i9000连不上手机助手了 刷机正常 AI软件中如何进行图形缩放 我女儿六年级了,因为之前买了智能手机,成绩下降,现在想给她每一个学生... 好笑的生日祝福语送好友 2022生日快乐祝福语朋友 2022给朋友生日快乐祝福语 创意的生日祝福语 Vue实现不同类型的文件下载及重命名 深圳市宝来得实业发展有限公司怎么样? 宝来工业区属于哪个区 ...富含蛋白质的鸡蛋瘦肉当煮熟后,还有没有营养价值? 深圳市顺宝来资产管理有限公司怎么样? 成都市强生实业有限责任公司简介 可益实业(深圳)有限公司怎么样? 深圳市景灿实业发展有限公司怎么样? 阿娇在酒店撞伤头就医后情况如何?伤势严重吗? 阿娇头部受重伤,伤势如何? ...分析说明我们为什么既要坚持又要发展马克思主义 老挝阿胜年收入 迅雷下载怎样一个接一个? ...定义一个类Array,求一个二维数组各列元素的平均值,并将所求得的平 ... (C++)求大神带飞 编写一个主函数和3个子函数,实现下面功能:1子函数q... ...年阳历10月22日农历9月29号 10点39分出生姓李根据生辰八字取名... 影视剧中的一百个俗套是哪些 如何设置Word水印浮于图片上方? 我技嘉880主板,集成显卡,今天又买了微星N560GT独显,装完驱动每次开机出... 美国商科研究生金融工程招生偏好?时代兴华留学怎么说?