【发布时间】:2015-12-30 03:03:46
【问题描述】:
我正在尝试获取单个文件对象并按指定的块大小将其拆分为块。 在我的示例中,尝试将单个文件拆分为 1MB 的块。所以我弄清楚它需要多少块,然后我试图从“偏移量”(我正在使用的当前块 * 块大小)开始对文件进行切片,然后切掉一个块大小。 我的第一个切片正确显示为 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++;
}
【问题讨论】:
-
您的 codepen 似乎对我有用。您的 codepen 和上面的代码之间的一个区别是您的 codepen 正确地说:
file.slice(offset, offset + chunkSize)而不是file.slice(offset, chunkSize)。此外,您最后会生成一个空 blob,因为您的 while 条件应该是while (chunk < chunks)。 -
是的,我用下面的解决方案更新了 codepen,效果很好。感谢收看!
标签: javascript file chunking