在做项目的过程中需要根据查询出的数据直接用csv方式下载,但是数据量较大时用dataURL方式下载会报下载失败,但后台与前台代码均无报异常,尝试用Blob流下载发现没有这个问题,Blob下载代码如下:
var fileName = 'test.csv';
var aLink = document.createElement('a');
var csvData = "test,test2\r\n123,456";//下载的内容
// 加上\ufeff BOM 头是为了防止用excel打开文件时乱码
var blob = new Blob(['\ufeff' + csvData ], {type : 'text/csv,charset=UTF-8'});
var evt = document.createEvent("HTMLEvents");
evt.initEvent("click", false, false);//initEvent 不加后两个参数在FF下会报错
aLink.download = fileName;
aLink.href = URL.createObjectURL(blob);
aLink.dispatchEvent(evt);
参考:
http://www.cnblogs.com/hustskyking/p/multiple-download-with-javascript.html
http://blog.csdn.net/oscar999/article/details/16342699