標籤:html java jquery ajax springmvc
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">匯入 AjaxFileUpload.js 檔案</span>
js代碼
$.ajaxFileUpload({ url: 'upload',//處理圖片指令碼 secureuri : false, fileElementId : 'uploadImg',//file控制項id data: {photoType: photoType},//參數 dataType : 'json', //參數大寫 否則Google瀏覽器可能報錯 success : function (data,status){ data=jQuery.parseJSON(data); $("#hideImgPath").val(data.filePath);alert("上傳圖片成功!"); }, error: function(data, status, e){ alert("上傳圖片失敗!請稍後重試!"); }});
html代碼
<span class="d"><input type="file" id="uploadImg" name="uploadImg" value="" /><input type="button" id="uploadImgButton" onclick="uploadSaveImg();" value="確定上傳" /><input type="hidden" value="" id="hideImgPath" name="hideImgPath"/></br>格式一般為GIF或者JPEG,大小100*100像素;</span>
所遇問題1: 在使用springMVC 架構時 , IE瀏覽器會將返回的資料直接下載
解決辦法:在springMVC設定檔中 添加如下配置資訊:
<!-- 避免IE執行AJAX時,返回JSON出現下載檔案 --><bean id="mappingJacksonHttpMessageConverter"class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"><property name="supportedMediaTypes"><list><value>text/html;charset=UTF-8</value></list></property></bean>
同時設定返回資料的類型: response.setContentType("text/plain;charset=UTF-8");
所遇問題2:返回的資料中帶有<pre> 標籤
解決辦法: 將AjaxFileUpload.js檔案中 eval( "data = " + data ); 改成 data = jQuery.parseJSON(jQuery(data).text());
此時如果在頁面上還是無法解析時,請再將 返回資料轉成Json 一遍 data=jQuery.parseJSON(data);
所遇問題3: 在使用springMVC時 後台接收不到 前台的 File 時 報錯:
nested exception is java.lang.NoClassDefFoundError:org/apache/commons/io/output/DeferredFileOutputStreamat
org.springframework.web.servlet.DispatcherServlet.triggerAfterCompletionWithError(DispatcherServlet.java:1259)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:945)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:915)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:822)
java.lang.ClassNotFoundException: org.apache.commons.io.output.DeferredFileOutputStream
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1358)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)
at org.apache.commons.fileupload.disk.DiskFileItemFactory.createItem(DiskFileItemFactory.java:199)
解決辦法: 1、 添加 commons-io-1.3.1.jar 包 ,此包是上傳所依賴的包 。
2、如果添加此包後還是提示找不到本包 原因可能有兩點:①、tomcat 沒有載入本包,此時請到tomcat下 將此包勾選上 。 ②如果出現本包衝突時 將tomcat下
的同名jar包 刪掉