锁定老帖子 主题:[原创]让你的Strut2支持Cos上传
精华帖 (1) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
作者 | 正文 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
发表时间:2009-01-15
最后修改:2009-01-15
Struts2因License的原因早就不再支持Cos上传了,具体见 http://struts.apache.org/2.1.6/docs/file-upload.html 的官方说明: /** * @author <a href="http://intolong.spaces.live.com/">Jalen</a> */ public class CosMultiPartRequest implements MultiPartRequest { private MultipartRequest multi; private String defaultEncoding; private boolean maxSizeProvided; private int maxSize; @Inject(StrutsConstants.STRUTS_I18N_ENCODING) public void setDefaultEncoding(String defaultEncoding) { this.defaultEncoding = defaultEncoding; } @Inject(StrutsConstants.STRUTS_MULTIPART_MAXSIZE) public void setMaxSize(String maxSize) { this.maxSizeProvided = true; this.maxSize = Integer.parseInt(maxSize); } @Override public String[] getContentType(String fieldName) { return new String[] { multi.getContentType(fieldName) }; } @SuppressWarnings("unchecked") @Override public List getErrors() { return Collections.EMPTY_LIST; } @Override public File[] getFile(String fieldName) { return new File[] { multi.getFile(fieldName) }; } @Override public String[] getFileNames(String fieldName) { return new String[] { multi.getFile(fieldName).getName() }; } @SuppressWarnings("unchecked") @Override public Enumeration<String> getFileParameterNames() { return multi.getFileNames(); } @Override public String[] getFilesystemName(String name) { return new String[] { multi.getFilesystemName(name) }; } @Override public String getParameter(String name) { return multi.getParameter(name); } @SuppressWarnings("unchecked") @Override public Enumeration<String> getParameterNames() { return multi.getParameterNames(); } @Override public String[] getParameterValues(String name) { return multi.getParameterValues(name); } @Override public void parse(HttpServletRequest request, String saveDir) throws IOException { if (maxSizeProvided) { multi = new MultipartRequest(request, saveDir, maxSize, defaultEncoding); } else { multi = new MultipartRequest(request, saveDir, defaultEncoding); } } } <constant name="struts.multipart.parser" value="cos" />
<bean type="org.apache.struts2.dispatcher.multipart.MultiPartRequest" name="cos" class="jalen.core.struts2.CosMultiPartRequest" />
处理基于http的文件上传,有这么几个opensource lib,O'Reilly的Cos,Apache的fileupload,还有JspSmart的SmartUpload。
网上查了下他们的性能对比,摘录如下:
使用2M、20M、45M、200M的上传大小测试三种组件所花费的时间(单位为ms)结果是: 2M
20M
45M
200M
从上述的表格对比中可以看出Cos始终保持着良好的性能。在上传量较小(容量<2M,这是最常出现的情况)时,Cos比FileUpload性能并没有好很多,但SmartUpload就已经开始显出弱势。随着容量的增大,FileUpload和SmartUpload的性能下降非常快,直到200M容量时,SmartUpload已经不堪重负崩溃了,而Cos此时的花费时间比FileUpload少了20多秒,不能不说在本次的评测中,Cos的性能位居第一。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
返回顶楼 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
发表时间:2009-01-15
谢谢,我说struts2怎么不能用cos了
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
返回顶楼 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
发表时间:2009-01-15
hack 个人不赞同,以后如果升级,可就麻烦了,自定拦截器
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
返回顶楼 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
发表时间:2009-01-15
kjj 写道 hack 个人不赞同,以后如果升级,可就麻烦了,自定拦截器
其实Struts2内嵌的fileupload,还有plugin方式的pell都是通过实现MultiPartRequest接口来做的. 这个实现也是同理而已。 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
返回顶楼 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
发表时间:2009-07-25
lz这个不支持多文件上传..
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
返回顶楼 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
浏览 6000 次