【问题标题】:I'm using FileReader API to read multiple files and breaking into parts我正在使用 FileReader API 读取多个文件并分成几部分
【发布时间】:2017-01-21 16:48:24
【问题描述】:

我想加载多个大文件。为此,我从

中提取了代码

javascript FileReader - parsing long file in chunks

每个块都有一个部件号,并传递给 Python CGI 程序,还给出了预期的块总数。当完整的块集被接收到所需的文件中时,Python CGI 将块连接起来。 这行得通。

现在我想加载多个文件,每个文件都像以前一样分成块。每个文件都有一个 id 号,因此 Python 会知道将其存储在不同的目录中,但是我的内存不足并且它崩溃了。 在

Reading multiple files with Javascript FileReader API one at a time

有人建议如何说服 Javascript 一次按顺序处理一个文件,而不是异步处理,但我试图让这段代码与我当前的代码一起工作的尝试没有成功。

文件拆分代码如下。变量 numparts 终止递归调用。

谁能建议如何修改底部循环预期的代码以顺序执行setupReader。

 function setupReader(file,filename) {
    var fileSize = (file.size - 1);
    var chunkSize = 150000000;
    var offset     = 0;
    var numparts= Math.ceil(fileSize/chunkSize);
    var chunkReaderBlock = null;
    var partno=0;
    var readEventHandler = function(evt) {
       if (evt.target.error == null) {
           offset += chunkSize;
           callback(evt.target.result); // callback for handling read chunk
       } else {
           console.log("Read error: " + evt.target.error);
           alert("File could not be read");
           return;
       }
       if (partno >= numparts) {
           console.log("Done reading file");
           return;
       }
       chunkReaderBlock(offset, chunkSize, file);
    }

    callback=function(result) {
       partno+=1;
       var bfile = result;
       var query="?fileName="+filename+"&Part="+partno+"&of="+numparts+"&bfile="+bfile;
      loadDoc('partition0',query,0);
   }

   chunkReaderBlock = function(_offset, length, _file) {
      var r = new FileReader();
      var blob = _file.slice(_offset, length + _offset);
      r.onload = readEventHandler;
      r.readAsDataURL(blob);
   }
   chunkReaderBlock(offset, chunkSize, file);
 }

 for (var i = 0; i < numfiles; i++) {
    setupReader(fileList[i],fileList[i].name);

【问题讨论】:

    标签: javascript python


    【解决方案1】:

    我不知道 python,但没有处理大文件上传的流式解决方案吗? 可能是这样的:Python: HTTP Post a large file with streaming ?

    在这种情况下,将洞文件分成块并发出多个范围请求变得毫无意义

    【讨论】:

    • 希望我在写所有这些东西之前能遇到这个。不管怎样,我会放手的,让你知道我的进展情况
    猜你喜欢
    • 2017-12-15
    • 2012-12-08
    • 2011-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-29
    • 1970-01-01
    相关资源
    最近更新 更多