点击a标签触发文件下载

本文介绍了几种常见的文件下载方法,包括使用a标签与form提交,并探讨了解决文件名乱码问题及二进制文件流下载的技术细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一般文件下载的方法:

1.生成a标签,href='文件地址',click();


2,生成form的提交;

两种方法都需要click(); 

而jQuery的trigger()对a标签无用;解决办法:

         1.利用js的click()方法去触发;

2.var a = $('<a href="'+res.href+'" download="'+res.fileName+'"><input id="export_file_btn" type="hidden"/></a>');
                        $(document.body).append(a);
                        $('#export_file_btn').trigger('click');

 


3.由于a标签下载文件中文名乱码问题(IE)

这是因为文件名传给后台时,url会对中文名进行转码,而unicode对中文转码会出现位置错乱导致乱码,需要调用encodeURI或者encodeURIComponent方法对中文进行转码,后台就可以不对文件名进行处理(tomcat下);


4,二进制文件流的下载

利用a标签的href属性;

href="URL.createObjectURL(new Blob([content]))";download = "filename"实现下载,火狐浏览器的兼容性a标签需要在dom结构上;img标签的src也可以,用来实现图片预览;

方法与对象:BlobCreateObjectURLfileReader;基础兼容性ie10以上;结合formData可以实现二进制文件上传,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值