ajax 下载大文件(>1Gb)的骚操作具体是如何实现的呢?

2019-06-02 09:59:04 +08:00
 serge001

https://mega.nz/#!6GBzRQbI!MFny6SMTykaLPBxLvjTHg7hQDdYf_AQFtBYzOtmdMKk

目测是将文件分成 16Mb 的 chunk,然后每次并发 5 个请求,然后再把文件拼起来,然后创建 a 标签调用浏览器的下载,但是具体的实现细节是怎样的呢?比如怎么将文件拼起来,服务器端要怎么处理呢?

3048 次点击
所在节点    前端开发
2 条回复
KasuganoSoras
2019-06-02 10:10:05 +08:00
以前我试过 AJAX 下载文件,把文件分成多个块然后编码成 Base64,浏览器端 AJAX 请求储存到本地,解码以后存到一个变量里,继续下载下一个块,再解码,加入到变量……直到下载完最后一个块,再回编码成一个 Base64,然后用 data:<MIME>;base64,<Base64> 来下载,不过如果文件很大的时候这个方法可能会很卡。。。
推荐用 WebSocket
acehow
2019-06-02 10:11:07 +08:00
文件名都是按顺序的。拼的时候就是按文件名取文件的二进制数据拼成一个就行了,拼完校验下 hashsum 值就完了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/569926

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX