项目是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一起使用时,文件上传的处理通常在Action类中完成,这里需要集成Spring的`@Autowired`注解和Struts的`ActionForm`。Spring的`@RequestParam`注解可以用来获取`CommonsMultipartFile`对象。同时,...
1. **配置**:在Spring MVC中,我们需要在`dispatcher-servlet.xml`或对应的配置文件中添加MultipartFile解析器,如`CommonsMultipartResolver`。 2. **控制器方法**:创建一个控制器方法,接收`MultipartFile`参数...
- **配置`:struts.multipart.saveDir`**: Struts2配置文件中,需设置临时目录以存储上传文件,例如`<constant name="struts.multipart.saveDir" value="/tmp/struts"/>`。 - **Action拦截器**: Struts2的...
Struts2文件上传是Web开发中的一个重要功能,它允许用户通过网页上传文件到服务器。...在实际项目中,你可能还需要结合其他工具或库,如Spring MVC的`CommonsMultipartResolver`,以满足更复杂的文件上传需求。
- 在Spring MVC中,可以使用`@MultipartFile`注解和`CommonsMultipartResolver`来处理文件上传。在`dispatcher-servlet.xml`或`applicationContext.xml`中配置: ```xml ...
同时,在struts.xml配置文件中,你需要为对应的Action添加一个`params`拦截器,确保文件参数能正确传递。 **Hibernate框架**: Hibernate作为持久层框架,处理数据的CRUD操作。在文件上传后,如果需要将文件信息...
需要在struts.xml配置文件中启用这个拦截器,并在Action类中定义对应的字段接收文件。 2. **Hibernate保存文件信息**:如果需要将文件信息存储在数据库中,可以通过Hibernate来操作。可以创建一个模型类来表示文件...
需要注意的是,由于提供的描述中提到“没有包,需要自己加包”,这意味着在实际开发过程中,你需要自行添加所需的依赖,例如Spring、Struts2、Hibernate的JAR包,以及可能的Oracle JDBC驱动和其他支持文件上传下载的...
2. **MultipartResolver**:Spring MVC框架通常使用`CommonsMultipartResolver`来解析multipart/form-data类型的请求,但在Struts2中,我们需要依赖Struts2的内部处理机制。Struts2会自动处理文件上传,无需额外配置...
由于`CommonsMultipartResolver`是Spring MVC的一部分,它并不直接依赖于SSM框架,但在SSM项目中使用时,需要确保所有依赖的jar包都已正确引入。`ssm项目所需jar包`可能包含以下组件的jar: 1. Spring框架的核心库...
接下来,我们需要在Spring的配置文件中声明这个解析器。例如: ```xml <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- 设定默认编码 --> <!...
例如,在Spring中,可以使用`CommonsMultipartResolver`作为默认的MultipartResolver,自动处理文件上传。 9. **性能优化** 考虑到性能,可以设置FileUpload的配置参数,如内存阈值,超过该阈值的文件将被写入磁盘...
8. **SSH框架的辅助库**:在Java中,Apache Commons FileUpload和Spring的CommonsMultipartResolver等库可以帮助处理multipart数据,简化文件上传的实现。 9. **示例代码**:在SSH框架下,一个简单的文件上传控制器...
- 需要在Spring MVC配置文件中添加一个`CommonsMultipartResolver` bean来处理文件上传。 - 示例配置如下: ```xml <bean id="multipartResolver" class="org.springframework.web.multipart.commons....
在实际开发中,我们常常使用Spring MVC或Struts等Web框架,它们提供了更高级别的API来简化文件上传下载的操作。例如,Spring MVC中的`MultipartFile`接口和`CommonsMultipartResolver`解析器。 综上所述,"java...
在本场景中,我们关注的是如何在不依赖Struts的情况下,使用Spring MVC实现多附件上传的功能。这是一个常见的需求,特别是在需要用户提交多个文件如图片、文档等的Web应用中。下面将详细讲解这一主题。 首先,我们...
例如,在Spring框架中,可以使用`@RequestParam("file") MultipartFile[] files`来接收上传的文件数组,其中`MultipartFile`是Spring提供的用于处理上传文件的类。 值得注意的是,`<input type="file">`元素可以...
3. **Multipart解析器**:在现代Web应用中,经常使用Spring MVC或Struts2等框架,它们通常有自己的Multipart解析器,如Spring的`CommonsMultipartResolver`或Struts2的`StrutsFileUpload`。 4. **安全性考虑**:在...
- 在`web.xml`文件中配置`ActionServlet`。这包括定义servlet名称、类路径、初始化参数以及启动优先级。例如: ```xml <servlet-name>action <servlet-class>org.apache.struts.action.ActionServlet ...
在Spring MVC框架中实现文件上传进度条功能,可以让用户在上传大文件时获得更好的交互体验。这个过程涉及到前端与后端的协同工作,包括前端的进度条展示、HTTP多部分请求以及后端的监听和反馈机制。下面我们将详细...