项目中有上传功能,文件最大300M,文件类型不限。目前需要做下载
功能,主要兼容主流浏览器,QQ
、chrome
、IE11
等,所以想利用.
今天网上查了一下,发现主要分两类:
Blob
a 标签
第一种方式由于需要后台支持,并且下载完成浏览器才会有响应,对于大文件下载体验不太好,所以想用第二种方式,关键还简单:
代码如下:
let _filename = filename || url.substr(url.lastIndexOf('/') + 1)
var element = document.createElement('a');
element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(url));
element.setAttribute('download', _filename);
element.setAttribute('target', '_blank')
element.style.display = 'none';
document.body.appendChild(element);
element.click();
document.body.removeChild(element);
这种方式在chrome
下载视频
、图片
都没问题,但是在IE11
下就行不通了,提示如下:
点击允许
显示如下,也找不到下载方式。
有什么好办法处理这种需求呢?
要下载文件肯定已经在服务器了,直接a标签把文件地址放进去下载把