Próbuję wziąć obiekt pojedynczego pliku i podzielić go na porcje według określonego rozmiaru porcji. W moim przykładzie, próbując podzielić pojedynczy plik na porcje 1 MB. Rozmyślam więc, ile sztuk zajęłoby, a następnie próbuję przekroić plik, zaczynając od "przesunięcia" (bieżący fragment, na którym się znajduję * wielkość kawałka), i odcinania rozmiaru kawałka. Mój pierwszy plasterek wyszedł poprawnie na 1MB, ale moje kolejne plasterki okazały się być 0, jakieś pomysły dlaczego? posiadanie działającego codepen tutaj:Dzielenie pliku na porcje z Javascriptem
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++;
}
Twój codepen wydaje się działać dla mnie . Jedną różnicą między twoim codepenem a powyższym kodem jest to, że twój codepen poprawnie mówi: 'file.slice (offset, offset + chunkSize)' zamiast 'file.slice (offset, chunkSize)'. Na końcu tworzysz pustą kropelkę, ponieważ twój warunek powinien być 'while (chunk
Tak, zaktualizowałem kodek za pomocą poniższego rozwiązania, działa świetnie. Dzięki za spojrzenie! –