我正在使用jQuery表单插件通过ajax上传文件。我已经测试了脚本,它适用于除IE之外的所有浏览器。似乎在IE中没有任何事情发生(事件和......)。我工作了几个小时,但仍然没有运气。
PHP:
echo $this->input->post('name');//this is a debuging statement which shows the data sent by client
JS:
$("input[type=file]").on('change',function(){
$(this).parents('.fileinput-wrapper').find('.fileinput-preview').css('background','url(http://localhost/project/assets/images/ajax-loader.GIF) no-repeat center center');
var selectedElement = this;
var name = $(this).attr('name').toString();
$('#upload').ajaxSubmit({
//dataType:'json',
data: {name:name},
success: function(data) {
$(selectedElement).parents('.fileinput-wrapper').find('.fileinput-preview').css('background',"url('http://localhost/project/assets/images/loading.png') no-repeat center center");
return false;
},
error : function(xhr) {
alert(xhr.responseText);
return false;
}
});
});
我该怎么办? (感谢您的帮助。)
答案 0 :(得分:1)
Internet Explorer 9及更低版本不支持XMLHttpRequest Level 2协议。这是jQuery异步上传文件所必需的。您必须使用iFrame或禁用具有旧版IE浏览器的用户的上传功能。
您可以使用条件注释来测试旧版本的IE。将以下内容添加到JavaScript:
var div = document.createElement("div");
div.innerHTML = "<!--[if lte IE 9]><i></i><![endif]-->";
如果变量“div”设置为<i></i>
值,则表示您正在处理旧版本的IE