首页 新闻 搜索 专区 学院

文件上传服务器成功,但没有进行表单提交保存,导致上传的文件成了脏文件,如何避免?

0
悬赏园豆:10 [待解决问题]

文件上传,我们一般都是在页面上异步上传文件,上传成功把文件Url地址保存到隐藏域,再和其他表单一起提交保存
但这样往往会有个问题,就是文件上传成功后,用户没有提交表单(取消了 或者关闭当前页面了等),这样就会导致这次的上传成功的文件在服务器上就没有引用

龍四的主页 龍四 | 初学一级 | 园豆:36
提问于:2018-09-05 13:56
< >
分享
所有回答(2)
0

有这样一个方案,供你参考:

  1. 在db里建一个 datafile 表(fileid,path,filename,status)
  2. 文件上传成功后,往datafile表插入一条记录,status=0,页面隐藏域里记录fileid
  3. 提交表单(包含隐藏域里fileid), 在db中修改fileid对应的status=1
  4. 定期清理status=0的datafile表,并删除对应文件。
大豆男生 | 园豆:608 (小虾三级) | 2018-09-05 14:36

嗯 是一种可行方案 多谢

支持(0) 反对(0) 龍四 | 园豆:36 (初学一级) | 2018-09-05 15:18

@龍四:
还有一种方法:
用 HTML5 的 FileReader 的 readAsDataURL上传的文件。上传的文件以base64的形式暂存在页面里的。
这样上传文件可以和表单一起提交。

支持(0) 反对(0) 大豆男生 | 园豆:608 (小虾三级) | 2018-09-05 15:49

@大豆男生: 这种方案只适合上传文件不大的情况

支持(0) 反对(0) 远扬 | 园豆:12 (初学一级) | 2018-09-05 18:17
0

加入用户取消了当前表单,可以写一个取消触发的事件,给刚刚上传的文件和数据删掉

DanBrown | 园豆:1513 (小虾三级) | 2018-09-06 07:58
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册