文件上传,在做项目的时候,是无可避免的,一个高效的文件上传更是一件令人愉悦的事情。
首先,在没有使用第三方库的情况下,处理单个或者批量的文件上传,需要考虑文件的解码和内存占用情况等问题,这些都是让人需要时间去琢磨的。
如果,你是打破砂锅问到底的人,那么需要去参考:
http://www.ibm.com/developerworks/cn/java/fileup/
http://www.blogjava.net/nokiaguy/archive/2008/05/29/203792.html
等,他们都是自己解码的。 浏览器是如何把文件流组织放进http协议里面的,firefox可以安装一个
httpfox来监控和显示具体的格式。其实就是一个boundary把form里面的各个field隔开。
话又说回来,其实这里的解码不像视频解码那么复杂。无非就是根据分隔符把各个filed隔开然后取值罢了,无论怎样,爱好者总是能抢先一步把这些东西都封装好。拿来主义的我们也要顶礼膜拜一下吧。
其次,我们在这里要着重介绍如何使用Apache的FileUploader实现高效的文件上传,你可以参照官网的例子和解释:
http://commons.apache.org/fileupload/using.html (传统方法)
http://commons.apache.org/fileupload/streaming.html (非传统的流方式,高效占用内存小)
在编码之前,先去http://commons.apache.org/fileupload/download_fileupload.cgi 下载jar包。