基于Spring MVC的Ajaxupload

大部分类基于SpringSide的Struts版本,提供了SpringMVC的multipartResolver。multipartResolver的配置如下:
[code]
<bean id="multipartResolver"
class="com.xxx.xxx.AjaxFileUploadMultipartResolver">
<property name="maxUploadSize">
<value>104857600</value>
</property>
<property name="maxInMemorySize">
<value>4096</value>
</property>
</bean>
[/code]

AjaxFileUploadMultipartResolver的核心代码如下:
[code]
public class AjaxFileUploadMultipartResolver extends CommonsMultipartResolver {
public AjaxFileUploadMultipartResolver() {
super();
}

public AjaxFileUploadMultipartResolver(ServletContext servletContext) {
this();
setServletContext(servletContext);
}

public MultipartHttpServletRequest resolveMultipart(
HttpServletRequest request) throws MultipartException {
String encoding = determineEncoding(request);
FileUpload fileUpload1 = prepareFileUpload(encoding);

// Begin of added code
UploadListener listener = new UploadListener(request, 3);
request.getSession().setAttribute("uploadInfo",
new UploadInfo(0, request.getContentLength(), 0, 0, "start"));
FileItemFactory factory = new MonitoredDiskFileItemFactory(listener);
ServletFileUpload fileUpload = new ServletFileUpload(factory);
fileUpload.setSizeMax(fileUpload1.getSizeMax());
fileUpload.setHeaderEncoding(fileUpload1.getHeaderEncoding());
// end of added code

try {
List fileItems = ((ServletFileUpload)fileUpload).parseRequest(request);
MultipartParsingResult parsingResult = parseFileItems(fileItems, encoding);
return new DefaultMultipartHttpServletRequest(
request, parsingResult.getMultipartFiles(), parsingResult.getMultipartParameters());
}
catch (FileUploadBase.SizeLimitExceededException ex) {
throw new MaxUploadSizeExceededException(fileUpload.getSizeMax(), ex);
}
catch (FileUploadException ex) {
throw new MultipartException("Could not parse multipart servlet request", ex);
}
}

}
[/code]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值