1. 程式人生 > >文件上傳--upload.parseRequest(request)返回空

文件上傳--upload.parseRequest(request)返回空

-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)返回空