上传脚本:
$('#fileupload').fileupload({
url: 'api/combox_upload.php',
type: 'POST',
dataType: 'json',
dropZone: $dropZone,
singleFileUploads: true,
done: function (e, data) {
attachments = attachments.concat(data.result);
refreshAttachments();
},
add: function(e, data) {
var file = data.files[0];
data.context =
$('<li>',{'class':'file-upload-item'})
.append($('<span>').text(file.name))
.append(
$('<div>',{'class':'progressbar'})
.append($('<div>',{'class':'progress'}))
).appendTo($fileUploads);
data.submit(); // start upload immediately
},
progress: function(e, data) {
var progress = data.loaded / data.total;
data.context.find('.progress').stop().animate({'width':(progress*100)+'%'},100,'linear');
//data.context.find('.progress').css({'width':(progress*100)+'%'});
}
});
在我的api/combox_upload.php
脚本echo json_encode($_FILES)
中,有一半时间它返回空白(我正在 Chrome 开发人员工具栏中观看 XHR 请求响应)。
这是为什么?如何修复它,使其始终提交文件?
编辑:对于较大的文件,它似乎更频繁地发生。
PHP没有正确处理多部分数据可能是一个问题吗?我注意到 XHR 请求会在文件上传开始后立即出现,但 PHP 显然还没有得到整个文件……那它是做什么的呢?当我尝试访问$_FILES
对象时它会阻塞还是只给我一个空数组?我有什么特别的吗?