web端下载文件限制

  • Post author:
  • Post category:其他


一般都是利用a标签去实现文件的下载;

  downloadFile(path) {
    let a = document.createElement("a");
    a.href = path;
    a.download = path;
    a.target = "_blank";
    a.click();
  },

问题一:大小限制

问题现象描述:在下载超过1G大文件的时候,加载到1个G的时候进度条会暂停一会,随后下载速度会降为0kb/s,再之后1-2秒后,进度条变为空,也就是重新下载。一直重复循环······

1G的文件下载问题,上网查了一下,是nginx代理的缓存默认为1个G,这个可以在nginx里面进行配置,proxy_max_temp_file_size等关于缓存的配置项,当时配置了4G;

继续测试1个G的文件,可以下载,没问题;

而后测试2G多的文件,发现下载到2G就卡住

发现是

浏览器会限制下载的文件大小2G


问题二:数量限制

问题现象描述:碰到文件批量下载的业务,当时就是用a标签循环的方式实现的,批量下载20个文件,每次都会下载10-15个文件,其他文件没有被下载下来。

不知道什么原因,据说是浏览器限制,

一段时间内下载的量被限制为10个

可以用jszip、file-saver插件进行打包实现批量下载,也可以通过setTimeout将下载时间隔开;

问题三:不知道什么玩意儿的问题

问题现象描述:也是批量下载,不过下载的文件为3个,大小在200MB-500MB之间,

此时电脑连的是wife

,三个文件下载的进度条会像问题一里描述的一样循环(三个文件下载的速度像是在抢网络);

此时电脑连上网线

,问题三就没了

据说是

wife的策略问题

,不太懂,也没查。

结论

不建议web端下载大文件和批量下载,最好后端处理



版权声明:本文为qq_52070860原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。