在进行WEB开发时经常用到多附件上传的需求.
经过几个项目的实践,提出几点开发思路:
1.在上传附件时处理中,使用服务器上的两个目录,一个为临时目录,一个为正式发布目录.
2.将上传页面与其它信息页面分开,可使用IFREAM方式进行内嵌.
3.上传的同时进行文件名处理,以保证文件名为非中文并且不重复.
4.在上传到临时目录后,在SESSION中以一个类似HASHTABLE 的数据结构记录新生成的文件名和原文件名.
5.在用户正式提交此页面时从SESSION中读取上传时记录下的新文件名和原文件并进行持久化(存数据库),并且同时移动临时目录中的对应文件到正式发布目录中.
为什么要先上传到临时目录中呢?原因很简单就是,用户的操作是不确定的,网络的可靠性也是不确定的,这样就必须使系统能够处理这种由于非正常情况而产生的文件垃圾.而处理的方法就是先到一个临时目录中,等正式确定后再移到正式发布目录.其中临时目录中的文件可以定时进行清理.