点击a标签触发文件下载

一般文件下载的方法:

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


2,生成form的提交;

两种方法都需要click(); 

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

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

2.var 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也可以,用来实现图片预览;

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

你可能感兴趣的:(点击a标签触发文件下载)