关于与IE8 / 9中的Blueimp文件上传插件相关的StackOverflow有很多问题,但我找不到与我的问题直接相关的任何内容。
我在IE8 / 9模拟器模式下使用IE10。每次PHP $ _FILES数组为空。我包括jquery.iframe-transport.js
,它加载得很好。没有JavaScript错误。 $ _FILES数组只是空的。
我试过评论另一个半相关问题中推荐的dataType: 'json',
行,但这没有帮助。
不知道该怎么做,找不到与此相关的任何内容。任何帮助表示赞赏。
这是JavaScript:
$('#photo-file').fileupload(
{
url: 'photos/upload',
dataType: 'json',
autoUpload: true,
acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i,
maxFileSize: 8000000 // 8 MB
}
)
.on(
'fileuploadadd',
function (e, data)
{
console.log('fileuploadadd');
if (total_photos_queue < available_photos)
total_photos_queue++;
else
return false;
}
)
.on(
'fileuploadsubmit',
function (e, data)
{
console.log('fileuploadsubmit');
progress_bar.width('0%');
progress_bar.fadeIn();
}
)
.on(
'fileuploadprogressall',
function (e, data)
{
console.log('fileuploadprogressall');
var progress = parseInt(data.loaded / data.total * 100, 10);
progress_bar.css('width', progress + '%');
}
)
.on(
'fileuploaddone',
function (e, data) {
console.log('fileuploaddone');
$.each(
data.result.files,
function (index, file)
{
if (file.filename)
photo_uploaded(file.id, file.filename, file.subdir);
else if (file.error)
console.log('error: ' + file.error);
}
);
}
)
.on(
'fileuploadstop',
function (e) {
console.log('fileuploadstop');
progress_bar.fadeOut();
}
)
.prop('disabled', !$.support.fileInput)
.parent().addClass($.support.fileInput ? undefined : 'disabled');
PHP简单(用于调试):
var_dump($_FILES); die();
答案 0 :(得分:2)
我想出来了,所以对于有类似问题的人来说,我是如何解决它的。
在我的.on('fileuploadsubmit', function(e, data){ .. })
活动中,我将<input type="file">
设置为已禁用,以防止用户在上传文件时提交文件(我从原始示例JavaScript代码段中删除了该位发帖因为我认为这不重要。 IE8和IE9并不是这样的。将输入禁用代码放在setTimeout()
中,延迟为100毫秒,解决了这个问题。