2013-01-23 24 views
1

我在上傳圖片時遇到Internet Explorer問題。Internet Explorer中的jQuery圖片上傳問題

以下是一段代碼jQuery/AJAX的帖子。除了IE以外,此代碼在其他瀏覽器(Mozilla/Chrome)中運行良好。

<input id="Upload" type="button" value="Upload" /> 
<input type="file" name="file" id="AdFile" style="display: none" /> 

$('#Upload').click(function() { 
    $('input[id=AdFile]').click(); 
}); 

$('#AdFile').change(function() { 
    uploadAd($("#AdFile")[0].files[0]); 
}); 

function uploadAd(file) { 
var formData = new FormData(); 
    formData.append('File', file); 
    formData.append('ParentId', parentId); 
    formData.append('FileType', fileType); 
    $.ajax({ 
     type: "POST", 
     url: "@Url.Action("UploadAd", "Ad")", 
     data: formData, 
     contentType: false, 
     processData: false, 
     success: function (data) { 
     if (data.Success) { 
      $('#AdList').append("<option value='" + data.Ad.AdId + "'>" + data.Ad.FileName + "</option>"); 
     } 
     } 
    }).fail(function (data) { 
     //FAIL? 
    }).done(function() { 
    }); 
    return false; 
} 

我猜「FormData」不適用於IE。同樣的選擇是什麼?

回答

0

刪除逗號processData:false,檢查出來,它會工作。

+0

感謝您的回答,但在「processData:false」之後刪除逗號會顯示VS2012 IDE上的錯誤。也停止執行。請確認。 – user2003820

0

看到這個...

更改此爲IE:

$('#AdFile').change(function() { 
    uploadAd($("#AdFile")[0].files[0]); 
}) 

爲:

$('#AdFile').change(function() { 
    uploadAd($(this)[0]); 
}); 

而此行

url: "@Url.Action("UploadAd", "Ad")", 

爲:

url: "@Url.Action(" + UploadAd + ", " + Ad + ")", 

而且看到這個jsFiddle Example

問候。

+0

感謝您的回覆。我做了改變,仍然是一樣的。 此外,「jsFiddle示例」在Chrome上可以正常工作,但是在IE中,您不會收到警報(「上傳文件...」)。 – user2003820

+0

On the IE「($(」#AdFile「)[0] .files [0])」和FormData(「var formData = new FormData();」)的用法是問題 – user2003820

+0

@ user2003820請再次查看答案改變事件的功能...使用這個選項$('#AdFile:eq(0)')... Greetings –

0

試試下面的代碼:

if(typeof FormData == "undefined"){ 
var formData = []; 
formData.push('File', file); 
formData.push('ParentId', parentId); 
formData.push('FileType', fileType); 
} 
else{ 
var formData = new FormData(); 
formData.append('File', file); 
formData.append('ParentId', parentId); 
formData.append('FileType', fileType); 
} 

希望這有助於你。