美文网首页Java 杂谈PHP实战PHP经验分享
从源头杜绝Ajax上传垃圾文件

从源头杜绝Ajax上传垃圾文件

作者: wolf_43b9 | 来源:发表于2019-03-26 18:17 被阅读1次

表单数据与文件上传异步提交,富文本编辑器图片上传(删除时只删除标签),都会产生垃圾文件。相信为此头疼的同学不在少数,网上查,有一些解决方案,但都只是减少了,并未彻底回收。


我不关心它是怎么来的,我只关心它是怎么没的。

我的解决方案:

异步文件上传流程

上传文件控制表

CREATE TABLE `upload_file` (
  `id` int(10) NOT NULL,
  `path` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '文件相对路径',
  `is_used` tinyint(3) UNSIGNED NOT NULL DEFAULT '0' COMMENT '0:未使用,1:使用',
  `table_name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '使用该文件的表名',
  `table_id` int(10) UNSIGNED DEFAULT NULL COMMENT '使用该文件的表主键id',
  `trans_id` varchar(100) NOT NULL COMMENT '传输id,图片与数据匹配用',
  `created_at` int(10) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='上传文件表';

流程一看就很清楚,说几个关键点:

  1. trans_id,如果新表单,新上传的文件,trans_id参数保证唯一性就可以了,方法很多,请自由发挥;如果是编辑状态,需要根据表名及表主键id查找旧的trans_id,这样才能对历史数据进行编辑。
  2. 文件列表,因为文件上传唯一能标识此文件的,只有相对路径,也就是存储在数据表中的路径字符串,所以每次表单提交时,需要服务器端表单处理的代码把表单中的文件列表收集出来,提交给回调地址。
  3. 回调时查相同trans_id,不在表单提交的文件列表中的记录,标识为未使用(is_used=0),在文件列表中的标识为使用(is_used=1)。
  4. 定期删除表中未使用文件及记录。
  5. 文件上传地址统一,富文本编辑器或者其它异步上传插件都用统一文件上传地址,统一控制。

操作看起来繁琐,但能从源头解决垃圾文件问题。
如果还有其它简便方法,欢迎评论建议。
[源码(PHP版本)]https://github.com/mydevc/uploadfile

相关文章

  • 从源头杜绝Ajax上传垃圾文件

    表单数据与文件上传异步提交,富文本编辑器图片上传(删除时只删除标签),都会产生垃圾文件。相信为此头疼的同学不在少数...

  • 从源头上杜绝犯罪

    “老师,这个苹果是小煜从你家偷的,我看到她从你家出来的时候就把苹果藏在衣服里。”一个男生风风火火地跑过来,上气不接...

  • 杜绝装修污染, 从源头抓起

    只要装修就会带来一定量的室内污染。只是污染程度不同而已,如果这种室内的污染指标控制在国家相关的标准范围内,就不会对...

  • <input type="file"&

    1.如何用ajax上传文件 想要用ajax上传文件,需要借助一个javascript对象FormData,首先我们...

  • 2018-05-23

    图片上传 form上传 ajax上传 FileReader 利用FileReader对象,将input中的file...

  • ajax上传

    ajax axios

  • Ajax上传图片,后台使用SpringBoot的Multipar

    Ajax很好用,但是在上传文件这边却总是会出问题。例如,现在想上传一张图片,希望前台无刷新操作,使用Ajax上传,...

  • ajax介绍, 模板, 文件上传, json格式数据

    目录: ajax介绍 ajax模板 文件上传 基于ajax提交json格式数据 重点:设置请求与响应回来的解析编码...

  • 教你科学的扔扔扔 | 断舍离大作战

    之前我们讲了,如何从源头解决问题《剁手一时爽,整理火葬场》从杜绝买买买开始。 有姑娘对我说,最近陷入疯狂买买买之后...

  • django上传图片前后端实例

    相关阅读 JQuery Ajax使用FormData对象上传文件 图片 | CSDNDjango 图片上传、存储与...

网友评论

    本文标题:从源头杜绝Ajax上传垃圾文件

    本文链接:https://www.haomeiwen.com/subject/ggenvqtx.html