【问题标题】:Deleting attached files when its post deleted删除帖子时删除附件
【发布时间】:2016-06-11 07:01:36
【问题描述】:

假设有一个写文章的应用程序,文章会有一些图片、文件等。当然,当文章被删除时,附件也应该被删除。但是我该怎么做呢?

有写形式,在 /news/write。当我上传一些图片时,图片会在后台发送到服务器,(通过ajax post)。并且这张图片会有一些名字,比如a0bb880c5a06b5b9dc238f84cfda6861,它会被附加在编辑器<img src="/uploads/a0bb880c5a06b5b9dc238f84cfda6861">中。

我没有完成文章,而是服务器中的图片。最后我提交了帖子,里面有图片,几个小时后,我想删除它。删除文章本身没有问题,但图片仍保留在服务器中。我也想删。

我想了一些办法,结论是,我应该绑定文章和图片。

  1. 映射文件和文章 - 但我该怎么做呢?文章不存在,所以我不知道文章的ID。

  2. 文章保存后,解析内容,获取<img>标签的src属性,并连接。我应该这样做吗?有没有更简单的方法?

  3. 或者定期删除文件...?

【问题讨论】:

  • 您使用的是什么数据库?您是直接将图片标签作为图片标签添加到文章正文中吗?
  • @Yalamber 是的,我正在使用 mongodb,是的,当图像上传完成时,img 标签将附加到编辑器内容中。

标签: php jquery node.js


【解决方案1】:

您需要与您的文章和图像文件建立关系才能在删除文章时删除图像文件。

您还可以解析文章的内容并找到图像并删除它们,但我认为这样做是不好的方法。

不如试试这个。 保存文章时,您可以将图像文件保存在文章文档的字段中。

db.articles.insert( { title: "article title", body: 'article body', images: [{imageFileName: 'xyz.jpg'}, {imageFileName: 'xyz.png'}...] } );

现在,当您删除文章时,您将拥有可以迭代并删除图像文件的图像字段。

【讨论】:

  • 但是怎么做呢?不解析img标签如何知道图片文件名?
  • 当您上传图像并将其附加到编辑器时,您还可以在隐藏的输入字段中附加该图像文件名。这样,当您提交表单时,您也会获得图像文件名。
  • 这将是一个解决方案,我今晚会尝试!
猜你喜欢
  • 2021-07-09
  • 1970-01-01
  • 2019-09-28
  • 2021-10-19
  • 2018-05-05
  • 2014-04-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多