Я хочу загрузить несколько файлов.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, Spring-Security Commons-Ио Commons-FileUpload, 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] –
Запуск процесса имеет доступ на запись к моему java.io.tmpdir. не проблема –