Pot*_*Ion 9 javascript prompt file download
名为mega.com的文件共享网站具有创建自定义下载管理器的功能.下载文件时,它会在网站上显示自定义进度条(可能是将文件加载到缓存中),然后为缓存文件创建下载提示.如何用javascript生成这个?
Luk*_*uke 14
据我所知,Mega.com使用这个内部下载管理器,因为它们以加密形式将数据存储在他们的服务器上; 加密和解密发生在浏览器中.
您可以使用IndexedDB存储二进制数据.这是Mozilla的一个教程,解释了如何使用AJAX下载图像并将其保存在IndexedDB中.
当您将数据存储在IndexedDB中时,您应该有机会下载它(从内部浏览器存储).在这里,您可以阅读如何创建下载提示.
使用时XMLHttpRequest,您可以通过为progress事件提供处理程序来获得下载进度.
var oReq = new XMLHttpRequest();
oReq.addEventListener("progress", updateProgress, false);
[...]
function updateProgress (oEvent) {
if (oEvent.lengthComputable) {
var percentComplete = oEvent.loaded / oEvent.total;
// ...
} else {
// Unable to compute progress information since the total size is unknown
}
}
Run Code Online (Sandbox Code Playgroud)
如果服务器未Content-Length使用标头发送,则文件的总大小将不可用.