web端下载文件限制

博客主要探讨Web端文件下载问题。使用a标签下载时,存在大小和数量限制。如超过1G大文件,因nginx代理缓存和浏览器限制会下载异常;批量下载时,浏览器限制一段时间内下载量。还提到特定批量下载在WiFi下有进度循环问题,建议大文件和批量下载由后端处理。

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

一般都是利用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端下载大文件和批量下载,最好后端处理

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值