更新:fastupload 0.4.2支持文件上传过滤机制,在解析multipart/form-data请求数据过程中,如果发现boundary内的content- header不符合设定的规则,fastupload组件直接跳过这个boundary。相比较同类的组件或者框架的集成的处理,这个过滤机制更先进更有 效率。目前,fastupload支持文件拓展名过滤规则和content-type过滤规则,在解析过程中,只要发现不符合任一规则,立即跳过这个 boundary,并记录这个content-header信息。
API使用如下:
MultiPartDataFactory mpdf = new MemoryMultiPartDataFactory();
multiPartDataFactory.setAllowedTypes("image/jpg");
multiPartDataFactory.setAllowedExtensions(".jpg, .png");
HttpMemoryUploadParser httpMemoryUploadParser = new HttpMemoryUploadParser(
request, mpdf);
List<MemoryMultiPartData> list = httpMemoryUploadParser.parseList();
for (MemoryMultiPartData e : list) {
if (e.isFile()) {
e.toFile(System.getProperty("user.home" + "/" + e.getFileName());
} else {
if (e.getBytes() > 0)
System.out.println(new String(e.getContentBuffer()));
}
}
//获取未通过的边界header信息
Set<ContentHeaderMap> exceptionals = mpdf.getExceptionals();
除MemoryMultiPartDataFactory外,DiskFileFactory也支持这两种过滤规则。详细的HttpMemoryUploadParser和HttpFileUploadParser文档
介绍:
fastupload根据RFC 1867文档规范,编写的基于表单文件上传的组件,支持表单多文件上传,二进制文件与文本文件分开处理,彻底解决上传文本文件编码问题,支持文件上传大小限制,支持文件上传进度计算,api接口简明,比Apache Common File Upload速度快、稳定性高,无需任何第三方库的支持。
完整的功能列表:
项目地址: https://sourceforge.net/projects/fastupload/
相关的博客:http://mojarra.iteye.com/category/222356
fastupload的未来:与Spring MVC的集成正在开发之中,与Struts2的集成工作正在计划之中,Tomcat7集成还在蓝图之中。
为了完成这些计划和蓝图,fastupload召集开源志愿者,http://mojarra.iteye.com/blog/1696697