对JavaScript Max Blob大小有任何限制

前端之家收集整理的这篇文章主要介绍了对JavaScript Max Blob大小有任何限制前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用 AJAX调用下载一个文件.我需要使用AJAX调用,因为我必须发出一个发布请求,我需要从客户端发送一些头.由于Server API不受我们控制,除了使用AJAX之外,我们没有太多选择.为了显示文件保存对话框,我将字节数组转换为blob到Object URL,如下所示
  1. var oReq = new XMLHttpRequest();
  2. oReq.open("POST","api/operations/zip",true);
  3. oReq.responseType = "arraybuffer";
  4. oReq.onload = function(oEvent) {
  5. var blob=new Blob([oReq.response],{type: 'application/octet-binary'});
  6. var link=document.createElement('a');
  7. link.href=window.URL.createObjectURL(blob);
  8. link.download="myFileName.zip"; link.click();
  9. }
  10. oReq.send(filePaths);

现在我想知道,除了浏览器内存限制之外,我们可以在JavaScript中对Blob大小有任何限制.喜欢可以下载4 GB的文件,如果我有大约8 GB的RAM.

解决方法

Blob似乎在Chrome中限制为500MiB,并且目前存储在内存中,但重新设计正在进行中:

https://code.google.com/p/chromium/issues/detail?id=375297

其他浏览器实现的限制略有不同:

https://github.com/eligrey/FileSaver.js/#supported-browsers

猜你在找的JavaScript相关文章