同样是图片上传的问题。我用的是<input type="file" name="upload">
问题描述:
IE8/9/10都没有问题,上传到服务器后就在前端页面返回了图片的预览,chorme 和firefox也都没有问题。但是IE11 却出现了上传成功但图片无法在前端页面显示的问题。想了很多办法,最后终于在同事的帮助下找到了问题原因所在: IE11用ajaxUpload.js上传服务器返回的data 直接是内容,而其他浏览器用ajaxUpload.js 返回的是用<pre></pre>包裹的内容。在ajaxUpload.js中对返回值data的处理方法是$(data).html(); 所以如果是IE11,就找不到$(data).html()。这样原因就找到了。
先贴上ajax上传的代码:
//图片上传
var upload_func = function(e){
var node = $(this).parent().find('[type="file"]');
var id = node.attr("id");
var pattern = /(jpg|jpeg|png|gif)/i;
node.siblings('.upChuan').eq(0).attr('fileid','1');
if(!pattern.test(node.val())) {
alert("请选择jpg、jpeg、png、gif格式的图片文件");
} else {
var lib = this;
var order_id = $('input[name=order_id]').val();
$.ajaxFileUpload ({
url:'/qiche/user/upload?order_id=' + order_id +'&fileid='+node.attr("name"),
fileElementId:node.attr("id"),
dataType: 'json',
success: function (data) {
//console.log(data)
if(data.code=='0'){
//console.log('000000000000')
$($(lib).parent().find('.upPic>div>img')[0]).attr('src',data.data.url);
$(lib).parent().find(".upPic").show();
$(lib).parent().find('input[type="hidden"]').val($($("#file1").parent().find('.upPic img')[0]).attr('src'));
if(lib.className =='upChuan sail-up'){
var html = [];
html.push('<div style="position:relative;">');
html.push('<img class="imghead" src="">');
html.push(' <div class="pic_closen2">');
html.push('<img class="closePic2" width="20" height="20" src="http://i3.sinaimg.cn/qc/buycar/images/close.png">');
html.push('</div>');
html.push('</div>');
$('.upPic2').append(html.join(""));
$($(lib).parent().find('.upPic2>div>img')[ii]).attr('src', data.data.url);
$(lib).parent().find(".upPic2").show();
$(lib).parent().find('.upPic2').siblings('.sel_pic').text('请选择图片');
ii++;
}
//console.log(data.data.url);
}else{
showMsg(data.msg);
}
},
error: function (data) {
console.log(data);
showMsg(data.msg);
}
});
}