我开发了一个使用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();
}