我想上傳多個文件。基於Spring的REST基於Apache的通用文件上傳不起作用
但它不工作..
我的來源。
的pom.xml
<!-- commons-io (fileupload dependency) -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>1.4</version>
</dependency>
<!-- fileupload -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.2.2</version>
</dependency>
的web.xml
<filter>
<filter-name>multipartFilter</filter-name>
<filter-class>org.springframework.web.multipart.support.MultipartFilter</filter-class>
<init-param>
<param-name>multipartResolverBeanName</param-name>
<param-value>filterMultipartResolver</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>multipartFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>httpMethodFilter</filter-name>
<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>httpMethodFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
根的context.xml
<bean id="filterMultipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="100000" />
</bean>
JSP文件(方法是POST或PUT。但兩者不工作)
<form:form commandName="community" action="${CONTEXT }/community/${community.no}" method="${method}" enctype="multipart/form-data">
<img src="" name="titleImage" id="titleImage"/>
<br/>
<input type="file" name="titleImageFile"/>
<br/>
title
<form:input path="title" id="title" title="title"/><form:errors path="title"/>
<br/>
<form:textarea path="content" rows="5" cols="30"/>
<br/>
<img src="" name="contentImage" id="contentImage"/>
<br/>
<input type="file" name="contentImageFile"/>
<br/>
<input type="submit" value="ok" onclick="showProgressBar()"/>
</form:form>
控制器
@Secured("ROLE_ADMIN")
@RequestMapping(value = "/{no}", method=RequestMethod.POST)
public String insert(HttpServletRequest request
, @Valid Community community
, BindingResult bindingResult
, SessionStatus sessionStatus
, ModelMap model)
{
System.out.println("IN POST>>>@@@");
System.out.println("IN POST>>>@@@");
System.out.println("IN POST>>>@@@");
if(bindingResult.hasErrors())
{
return showWriteForm(model);
}
Map map = new HashMap();
map.put("community", community);
System.out.println("isMultipart?::"+ServletFileUpload.isMultipartContent(request));
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload fileUpload = new ServletFileUpload(factory);
fileUpload.setSizeMax(-1);
List<FileItem> items = null;
try {
items = fileUpload.parseRequest(request);
} catch (FileUploadException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("items size :: "+items.size());
communityService.insert(map);
return "redirect:/community/"+community.getNo();
}
爲什麼項目大小爲0?
幫助,請...
我使用RESTFUL設計,Spring MVC的,彈簧安全,共享-10,共享,文件上傳,JSTL Spring表單標籤,JSTL ......有什麼不對?
是否正在運行的進程已到任何目錄的寫訪問由System.getProperty(「java.io.tmpdir」)返回? – Slartibartfast
my java.io.tmpdir is C:\ Users \ slbi \ AppData \ Local \ Temp \ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@ 和log4j debug dir :: CommonsMultipartResolver - 找到多部分文件[titleImageFile],大小爲879394字節,原始文件名爲[Chrysanthemum.jpg],存儲在[C:\ Users \ slbi \ EEworkspace \ .metadata \ .plugins \ org.eclipse.wst.server.core \ tmp1 \ work \ Catalina \ localhost \ cinemadream \ upload__775585f1_1432352e2dc__7ffe_00000000.tmp] –
正在運行的進程有寫入權限my java.io.tmpdir。沒問題 –