使用Javascript将文件拆分为块
我尝试获取单个文件对象,并按指定的块大小将其拆分为块。 在我的示例中,尝试将单个文件拆分为1MB块。所以我计算出需要多少块,然后我试着从“偏移量”(当前块我在*块大小)开始切片文件,然后切片一个块大小。 我的第一个片正确地显示为1MB,但我随后的片显示为0,你知道为什么吗? 在这里有一个工作代码笔:使用Javascript将文件拆分为块,javascript,file,chunking,Javascript,File,Chunking,我尝试获取单个文件对象,并按指定的块大小将其拆分为块。 在我的示例中,尝试将单个文件拆分为1MB块。所以我计算出需要多少块,然后我试着从“偏移量”(当前块我在*块大小)开始切片文件,然后切片一个块大小。 我的第一个片正确地显示为1MB,但我随后的片显示为0,你知道为什么吗? 在这里有一个工作代码笔: var file=$('#uploadFile')[0]。文件[0]; var chunkSize=1024*1024; var fileSize=file.size; var chunks=Ma
var file=$('#uploadFile')[0]。文件[0];
var chunkSize=1024*1024;
var fileSize=file.size;
var chunks=Math.ceil(file.size/chunkSize,chunkSize);
var-chunk=0;
log('file size..',fileSize);
log('chunks…',chunks);
当(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;
}
createChunks=(文件,cSize/*cSize应该是字节1024*1=1KB*/)=>{
设起始点=0;
让endPointer=file.size;
让chunks=[];
while(startpointer)你的代码笔似乎对我有用。你的代码笔和上面的代码之间的一个区别是,你的代码笔正确地说:file.slice(offset,offset+chunkSize)
而不是file.slice(offset,chunkSize)
。另外,由于您的while条件应该是while(chunk
,因此您在最后生成了一个空blob。是的,我用下面的解决方案更新了代码笔,效果很好。感谢您的查看!
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;
}