遇見的原因是公司系統上的圖片上傳忽然不好使了,報錯400。單獨針對這個模塊調了好長時間都沒解決,后來才發現前幾天做過一個excel上傳導入的功能。。。
使用SptingMVC3.1.3 對於文件上傳提交的表單我們都會寫:enctype="multipart/form-data" 的一個設置, 那么值得注意的問題出現了, 對於表單post提交的數據無法綁定到后台的參數中, 緊接着服務器會向瀏覽器客戶端拋HTTP STATUS 400 的錯誤。
controller.java
jsp:
form 標簽中加入 enctype="multipart/form-data" 表示該表單要提交文件。
<form action="upload/file-upload.do" method="post" enctype="multipart/form-data"> <input type="file" name="file"> <input type="submit" value="提交"> </form>
其中List<FileItem> filelist為空,獲取不到上傳文件。
經過查找,發現excel導入的時候,加入了這樣一段配置。
Spring-servlet.xml
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="104857600" />
<property name="maxInMemorySize" value="4096" />
<property name="defaultEncoding" value="UTF-8"></property>
</bean>
這兩種分別是兩種上傳文件的設置方式,但是不能同時使用。
第一種方式:將配置文件注釋掉。
第二種方式:將controller接收參數的方式修改下。