最近一直用SmartUpload这个组件处理附件上传,但SmartUpload对于较大的文件支持却是很差劲。看它的源代码,发现它是把一个请求全部放入一个Byte数组里,可想而知道,如果请求里的附件数据一大的话,这个数据也要很大。我在做一个项目的时候,用SmartUpload处理附件上传,上传一个10M的文件就会出错,查看日志是因为内存分配异常。于是我就对该组件进行了一下修改。
修改的原理就是用一个文件存储一个请求的数据,再从这个文件中读取相关数据。这样就把用于存储请求的字节数组抛弃,改用一个文件对象(因为该文件的名称固定,所以可能导到多处理器处理时效率低)。同时加入一个类ParamenterSample,用于记录每一个参数在文件的起始位置和大小。
当上传文件时就调用mySmartUpload.myUpload()即可,调用mySmartUpload.save()进行文件存储。
附修改后的代码。
分享到:
- 2009-02-19 13:12
- 浏览 811
- 评论(1)
- 论坛回复 / 浏览 (1 / 3045)
- 查看更多
相关推荐
SmartUpload 组件 1、使用简单。在JSP文件中仅仅书写三五行JAVA代码就可以搞定文件的上传或下载,方便。 2、能全程控制上传。利用jspSmartUpload组件提供的对象及其操作方法,可以获得全部上传文件的信息(包括...
后来查了网上一些人的解决方案,最彻底的解决办法就是修改jspsmartupload的源码,在upload、download方法处强制指定它的编码格式就可以了。这是修改后的jar包,可以直接拿来用,但在初始化SmartUpload类的时候需要...
由于在网站很少找到上传组件smartUpload能支持文件是中文名的上传下载,经过自己修改源码,现已完全支持中文的上传下载,只要在使用时,添加编码方式就行了。 例如:// 实例化上载bean SmartUpload picUpload=new ...
JspSmartUpload_UTF8版 增加了一个setCharset()方法 在upload()之前使用 例如: smartUpload = new SmartUpload(); smartUpload.initialize(config, request, response); smartUpload.setCharset("UTF-8"); ...
SmartUpLoad源码
smartUpload组件
jspSmartUpload.jar下载.rar
SmartUpload源代码SmartUpload源代码SmartUpload源代码SmartUpload源代码SmartUpload源代码
jspSmartUpload 满足 jsp 大文档下载
SmartUpload 中文版,完整API
SmartUpload上传小实例,用于练习上传功能
smartupload上传下载组件 smartupload上传下载组件
struts 上传 和 smartupload上传
smartupload的视频教程,看完后可以独立完成smartupload的上传下载功能!
// 新建一个SmartUpload对象 SmartUpload su = new SmartUpload(); // 上传初始化 su.initialize(pageContext); // 限制每个上传文件的最大长度。 su.setMaxFileSize(10000); // 限制总上传数据的长度。 su....
采用jspSmartUpload 组件实现的上传下载的完整实例 下载即可运行,但是这个压缩包不支持中文名称的文件下载功能,我上传了一个可以下载中文的不会乱码的jspSmartUpload 组件,网址:...
写了一个小小的smartUpload上传图片的例子