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

项目是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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值