用户上传产生无效文件的解决思路

  在编写用户文件上传功能的时候,通常都是在form表单中设置一个隐藏的input控件,并使用iframe嵌套一个用于上传控制的文件,由用户输入本地文件,然后执行上传程序,完毕之后把文件的名称通过客户端脚本传递给父页面的隐藏input。在用户输入完其它信息后提交表单,系统就会把表单数据(包括input的值,即用户上传的文件名)一起写入到数据库中。但这种方式会带来一个问题:用户完成文件上传之后又没有提交表单,以至于上传的文件信息没有写入到数据库中,这样上传的文件就会变成废文件。另外,如果我们没有对用户在上传文件之后按回退键或者刷新页面等这些不正常的操作加以很好限制的话,那么废文件的生成就是不可避免的。
  那么,如何才能比较好地解决这个问题呢?狂人参考了网上的一些资料,经过实践之后,总结了一条设计思路,仅供参考,也欢迎指正,以便改进。

  其实思路很简单,主要是受到了中转站的启发。在用户执行文件上传操作的时候,事实上是执行了以下的步骤:
  1、获取用户的Session.SessionID值或用户帐号,并以该值作为文件夹名,使用FSO对象新建一个临时性质的文件夹。
  2、将用户文件上传至该文件夹中,并把文件名作为返回值赋予表单的隐藏input。如果用户在此期间执行了不正常的操作(如后退,刷新页面等),则所有的文件都将上传到该临时目录中,且返回给表单隐藏input的值只为最后一次上传的文件名。
  3、用户在填写完表单的信息后提交,将信息写入数据库,并从隐藏input中获取文件名,使用FSO对象把该文件从临时文件夹复制(或移动)至目标文件夹,完成后将临时文件夹删除。

  至此,整个操作完成。上述的算法,可以大大地减少废文件的生成,不足之处是对于用户上传文件后又没有提交表单的个例,则无法删除其临时文件夹,所以仍然需要系统管理员不定期地手工清理。

  对于该算法的源代码,待狂人调试完成后会向大家公布,敬请关注。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值