關於IE8上傳文件的一些問題


問題1:

IE8下上傳完文件后,對后台返回的JSON格式的數據,瀏覽器提示了下載該文件。

原因是因為IE8還不支持'application/json"類型的響應。

解決方法將后台返回的JSON數據以文本的形式返回,再在前台將文本解析成JSON格式。

代碼如下:

 Controller: 

 @RequestMapping(value="/doImport",method={RequestMethod.POST},produces = "text/html;charset=UTF-8") @ResponseBody public String doImport(HttpServletRequest request,HttpSession session){ //TODO doImport; }

注解里返回值轉成了文本形式,並指定了編碼,避免亂碼。

js:

$("#uploadForm").ajaxSubmit({
                    url: "doImport",
                    type: "POST",
                    clearForm :true,
                    dataType : "text",
                    success: function (data) {
              data = eval('(' + data + ')');
              // TODO doSomething
} });

 

問題二:當沒有選擇文件時,chrome和IE8的在后台接受到的數據也有所不同

正常選擇文件上傳時IE8:

不存在文件時 IE8:

這里我們上傳的文件是excel,我們可以看到是否有文件上傳時contentType是不同的,當沒有文件上傳時,顯示為一個流文件。

 

再看chrome的表現:

正常上傳時和IE8一致:

沒有選擇文件時:

得到的對象是一個null。

因此我們不能簡單的判斷對象是否為空來確定是否有文件,還要根據MulipartFile的isEmpty方法來確定

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM