项目是Struts + Spring的,想使用Spring的CommonsMultipartResolver完成上传文件功能。在网上查了一下,都是在Spring MVC中使用CommonsMultipartResolver的例子。自己解决了一下,方法如下:
最简单的,不需要配置Spring,直接在Struts的Action中写:
public ActionForward fileUpload(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws IOException {
CommonsMultipartResolver commonsMultipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());
commonsMultipartResolver.setDefaultEncoding("utf-8");
if (commonsMultipartResolver.isMultipart(request)) {
MultipartHttpServletRequest multipartRequest = commonsMultipartResolver.resolveMultipart(request);
MultipartFile file = multipartRequest.getFile("file");
File imageFile = new File(FileName);
file.transferTo(imageFile);
// String owner = multipartRequest.getParameter("fileOwner");
}
return ...
}
当然也可以在Spring的配置文件中添加如下
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="defaultEncoding" value="UTF-8" /> </bean>
然后在Struts的Action中取得multipartResolver来用。
//jsp code
<form id="fileUploadForm" method="post" action="XXX.do?method=fileUpload" enctype="multipart/form-data">
<tr>
<td>File:</td>
<td><input type="file" name="file"></td>
</tr>
<tr>
<td><input type="hidden" name="fileOwner" value="1002"/></td>
<td><input type="submit" value="submit"></td>
</tr>
</form>
要注意的是,这个Action在 struts-config.xml 中不能配置ActionForm Bean
参考
http://www.iteye.com/topic/26427
本文介绍如何在Struts+Spring项目中实现文件上传功能,通过使用Spring的CommonsMultipartResolver组件,提供了两种实现方式:直接在Action中操作及在Spring配置文件中设置。
2391

被折叠的 条评论
为什么被折叠?



