Я разработал приложение для загрузки, которое использует HTML5 FileReader, jQuery и PHP. Память браузера увеличивается при каждой отправке порции, пока не достигнет ошибки «недостаточно памяти». Я делаю что-то неправильно? Вот мой сценарий:
function startUpload(file){
var freader = new FileReader();
var chunkN = 1;
var chunkSize = 1048576;
var fileSize = file.size;
var offset = 0;
var totalChunks = parseInt(fileSize / chunkSize);
if (fileSize % chunkSize != 0) {
totalChunks++;
}
var sendChunk = function(e){
if (e.target.readyState == FileReader.DONE) {
var result = e.target.result;
var fd = new FormData();
fd.append('file', result);
$.ajax({
url: 'ajaxr/upload.php',
type: 'post',
data: fd,
timeout: 10000,
cache: false,
processData: false,
contentType: false,
success: function (r) {
if (chunkN < totalChunks) {
chunkN++;
setTimeout(function() { createChunk(); }, 1000);
}
}
)};
}
}
function createChunk() {
offset = (chunkN - 1) * chunkSize;
var blob = file.slice(offset, chunkSize + offset);
freader.onload = sendChunk;
freader.readAsDataURL(blob);
}
createChunk();
}
Задача ещё не решена.
Других решений пока нет …