使用 Javascript 将文件拆分为多个块

Splitting a File into Chunks with Javascript

我正在尝试获取单个文件对象并将其拆分为指定块大小的块。 在我的示例中,尝试将单个文件拆分为 1MB 的块。所以我弄清楚需要多少块,然后我尝试从 'offset'(当前块我在 * 块大小)开始切片文件,然后切掉一个块大小。 我的第一个切片以 1MB 正确输出,但我的后续切片结果为 0,知道为什么吗? 在这里有一个工作代码笔:

http://codepen.io/ngalluzzo/pen/VvpYKz?editors=001[1]

var file = $('#uploadFile')[0].files[0];
  var chunkSize = 1024 * 1024;
  var fileSize = file.size;
  var chunks = Math.ceil(file.size/chunkSize,chunkSize);
  var chunk = 0;

  console.log('file size..',fileSize);
  console.log('chunks...',chunks);

  while (chunk <= chunks) {
      var offset = chunk*chunkSize;
      console.log('current chunk..', chunk);
      console.log('offset...', chunk*chunkSize);
      console.log('file blob from offset...', offset)
      console.log(file.slice(offset,chunkSize));
      chunk++;
  }

切错了末端:

console.log(file.slice(offset,chunkSize));

应该是

console.log(file.slice(offset,offset+chunkSize));

使用下面的函数将一个大文件拆分成多个块。我已经将它与 React 一起使用了,它是有效的。

  createChunks = (file,cSize/* cSize should be byte 1024*1 = 1KB */) => {
   let startPointer = 0;
   let endPointer = file.size;
   let chunks = [];
   while(startPointer<endPointer){
    let newStartPointer = startPointer+cSize;
    chunks.push(file.slice(startPointer,newStartPointer));
    startPointer = newStartPointer;
   }
   return chunks;
  }