文件上傳--upload.parseRequest(request)返回空
阿新 • • 發佈:2017-06-30
-m pattern 空值 work odi val web.xml mapping nbsp
文件上傳功能之前已經完成,但因為只是一個小工具,在和同事合並代碼後發現功能不能使用了。
確認原因是
List<FileItem> fileList = upload.parseRequest(request);
返回的fileList為空值。
查詢網上方法,是在web.xml中增加請求類型攔截,但我的配置中已經有了,排除這個因素。
<servlet-mapping> <servlet-name>springDispatcherServlet</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping>
另一種說法是因為CommonsMultipartResolver惹的禍
果然,發現在spring-mvc.xml中最後多了一段
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="defaultEncoding" value="UTF-8"></property> </bean>
刪除這段代碼,重新編譯驗證,上傳功能又成功了。
附上解釋:
因為增加了組件CommonsMultipartResolver,它會攔截上傳文件的request並轉為MultipartHttpServletRequest,實際已做了一次解析。這樣parseRequest再去解析,就沒法解析得到FIleList了。
參見:http://blog.csdn.net/qq_33290787/article/details/53576705
文件上傳--upload.parseRequest(request)返回空