自定义下载管理器javascript

时间:2015-05-25 17:18:33

标签: javascript file download prompt

名为mega.com的文件共享网站具有创建自定义下载管理器的功能。下载文件时,它会在网站上显示自定义进度条(可能是将文件加载到缓存中),然后为缓存文件创建下载提示。如何用javascript生成它?

2 个答案:

答案 0 :(得分:14)

据我所知,Mega.com使用这个内部下载管理器,因为它们以加密形式将数据存储在服务器上;加密和解密发生在浏览器中。

存储

您可以使用IndexedDB存储二进制数据。这是一个tutorial from Mozilla,解释了如何使用AJAX下载图像并将其保存在IndexedDB中。

当您将数据存储在IndexedDB中时,您应该有机会下载它(从内部浏览器存储)。 Here you can read,如何创建下载提示。

进度条

使用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
  }
}

如果服务器没有发送带有标题的Content-Length,则文件的总大小将不可用。

Full source code and description on MDN

答案 1 :(得分:1)

您的问题有完整的答案:http://tonistiigi.github.io/mega/

如果您想在JavaScript中创建下载管理器,这些文章将帮助您完成工作:

如果您想创建文件下载进度,请转到以下链接:Javascript source file download progress?

  

请将更多的想法,时间和精力投入到您的工作中。如果你不能,请在我自己的回答后发表评论;我会帮你详细做。