`
wangcheng
  • 浏览: 1467157 次
  • 性别: Icon_minigender_1
  • 来自: 青岛人在北京
社区版块
存档分类
最新评论

在Struts中使用Spring的CommonsMultipartResolver上传文件

    博客分类:
  • java
阅读更多

项目是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文件上传大小限制.rar

    当Struts和Spring一起使用时,文件上传的处理通常在Action类中完成,这里需要集成Spring的`@Autowired`注解和Struts的`ActionForm`。Spring的`@RequestParam`注解可以用来获取`CommonsMultipartFile`对象。同时,...

    springmvc和strut2实现上传下载示例

    1. **配置**:在Spring MVC中,我们需要在`dispatcher-servlet.xml`或对应的配置文件中添加MultipartFile解析器,如`CommonsMultipartResolver`。 2. **控制器方法**:创建一个控制器方法,接收`MultipartFile`参数...

    struts2 文件上传和下载

    - **配置`:struts.multipart.saveDir`**: Struts2配置文件中,需设置临时目录以存储上传文件,例如`&lt;constant name="struts.multipart.saveDir" value="/tmp/struts"/&gt;`。 - **Action拦截器**: Struts2的...

    struts2文件上传

    Struts2文件上传是Web开发中的一个重要功能,它允许用户通过网页上传文件到服务器。...在实际项目中,你可能还需要结合其他工具或库,如Spring MVC的`CommonsMultipartResolver`,以满足更复杂的文件上传需求。

    设置FileUpload上传文件大小

    - 在Spring MVC中,可以使用`@MultipartFile`注解和`CommonsMultipartResolver`来处理文件上传。在`dispatcher-servlet.xml`或`applicationContext.xml`中配置: ```xml ...

    ssh框架单文件与多文件上传

    同时,在struts.xml配置文件中,你需要为对应的Action添加一个`params`拦截器,确保文件参数能正确传递。 **Hibernate框架**: Hibernate作为持久层框架,处理数据的CRUD操作。在文件上传后,如果需要将文件信息...

    SpringMVC上传文件 SSH上传文件

    需要在struts.xml配置文件中启用这个拦截器,并在Action类中定义对应的字段接收文件。 2. **Hibernate保存文件信息**:如果需要将文件信息存储在数据库中,可以通过Hibernate来操作。可以创建一个模型类来表示文件...

    ssh上传下载文件到oracle

    需要注意的是,由于提供的描述中提到“没有包,需要自己加包”,这意味着在实际开发过程中,你需要自行添加所需的依赖,例如Spring、Struts2、Hibernate的JAR包,以及可能的Oracle JDBC驱动和其他支持文件上传下载的...

    struts2的学习笔记+测试源代码

    2. **MultipartResolver**:Spring MVC框架通常使用`CommonsMultipartResolver`来解析multipart/form-data类型的请求,但在Struts2中,我们需要依赖Struts2的内部处理机制。Struts2会自动处理文件上传,无需额外配置...

    springmvc上传jar包

    由于`CommonsMultipartResolver`是Spring MVC的一部分,它并不直接依赖于SSM框架,但在SSM项目中使用时,需要确保所有依赖的jar包都已正确引入。`ssm项目所需jar包`可能包含以下组件的jar: 1. Spring框架的核心库...

    ssh框架实现多文件上传

    接下来,我们需要在Spring的配置文件中声明这个解析器。例如: ```xml &lt;bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"&gt; &lt;!-- 设定默认编码 --&gt; &lt;!...

    Apache 文件上传

    例如,在Spring中,可以使用`CommonsMultipartResolver`作为默认的MultipartResolver,自动处理文件上传。 9. **性能优化** 考虑到性能,可以设置FileUpload的配置参数,如内存阈值,超过该阈值的文件将被写入磁盘...

    Java文件上传

    8. **SSH框架的辅助库**:在Java中,Apache Commons FileUpload和Spring的CommonsMultipartResolver等库可以帮助处理multipart数据,简化文件上传的实现。 9. **示例代码**:在SSH框架下,一个简单的文件上传控制器...

    上传下载文档

    - 需要在Spring MVC配置文件中添加一个`CommonsMultipartResolver` bean来处理文件上传。 - 示例配置如下: ```xml &lt;bean id="multipartResolver" class="org.springframework.web.multipart.commons....

    java实现的文件上传下载

    在实际开发中,我们常常使用Spring MVC或Struts等Web框架,它们提供了更高级别的API来简化文件上传下载的操作。例如,Spring MVC中的`MultipartFile`接口和`CommonsMultipartResolver`解析器。 综上所述,"java...

    java不依赖sturts的springmvc多附件上传

    在本场景中,我们关注的是如何在不依赖Struts的情况下,使用Spring MVC实现多附件上传的功能。这是一个常见的需求,特别是在需要用户提交多个文件如图片、文档等的Web应用中。下面将详细讲解这一主题。 首先,我们...

    jQuery Ajax使用FormData对象上传文件的方法

    例如,在Spring框架中,可以使用`@RequestParam("file") MultipartFile[] files`来接收上传的文件数组,其中`MultipartFile`是Spring提供的用于处理上传文件的类。 值得注意的是,`&lt;input type="file"&gt;`元素可以...

    sqlfenye_java.rar.rar_java sql 分页_上传 Java_文件上传 java

    3. **Multipart解析器**:在现代Web应用中,经常使用Spring MVC或Struts2等框架,它们通常有自己的Multipart解析器,如Spring的`CommonsMultipartResolver`或Struts2的`StrutsFileUpload`。 4. **安全性考虑**:在...

    文件的上传下载

    - 在`web.xml`文件中配置`ActionServlet`。这包括定义servlet名称、类路径、初始化参数以及启动优先级。例如: ```xml &lt;servlet-name&gt;action &lt;servlet-class&gt;org.apache.struts.action.ActionServlet ...

    springmvc 上传进度条

    在Spring MVC框架中实现文件上传进度条功能,可以让用户在上传大文件时获得更好的交互体验。这个过程涉及到前端与后端的协同工作,包括前端的进度条展示、HTTP多部分请求以及后端的监听和反馈机制。下面我们将详细...

Global site tag (gtag.js) - Google Analytics