第一部分:上传
现在比较常用的上传组件有commons-fileupload, jspSmartUpload, COS;自己写上传组件的比较少了。我使用的是fileupload,用后推荐也大家使用,开源免费可靠,很多框架spring, struts提供支持。
如果上传文件要保存在服务器上,这个比较简单,form中加上enctype="multipart/form-data"
<form action="yourservlet" name="fileupload" method="post" enctype="multipart/form-data">
<input name="photofile" type="file" size="35">
</form>
在servlet中使用commons-fileupload的ServletFileUpload取得(parseRequest)上传文件(一个或多个),写到(write)磁盘。
如果要把文件转为二进制保存到数据库中,spring有相当好的封装,可以自动把文件转换成二进制流后用Hibernate存入数据库。
第二部分 打包
当用户下载时,可能想一次下载多个文件,而不是不停的点击左键或者右键另存为,这个时候将这些文件打包就方便不少。
打包可以使用sun的zip包,也可以用ant的zip包,传说中前者不支持中文,最好还是ant了。目前只做过一级的,还没有做过多级(指多层文件目录)打包。下面的代码中,fileURLList是一个文件地址列表。
2 BufferedInputStream origin = null ;
3