createChunk.js 667 B

123456789101112131415161718192021
  1. import SparkMD5 from './spark-md5';
  2. export function createChunk(file, index, chunkSize){
  3. return new Promise((resolve) => {
  4. const start = index * chunkSize;
  5. const end = start + chunkSize;
  6. const spark = new SparkMD5.ArrayBuffer();
  7. const fileReader = new FileReader();
  8. const blob = file.slice(start, end);
  9. fileReader.onload = e => {
  10. spark.append(e.target.result);
  11. resolve({
  12. start,
  13. end,
  14. index,
  15. hash: spark.end(),
  16. blob
  17. })
  18. }
  19. fileReader.readAsArrayBuffer(blob);
  20. })
  21. }