在TinyMCE中,如何处理上传到服务器然后在编辑器中删除的图像?

Dou*_*ner 7 tinymce

我通过拖放和图像上传对话框将图像上传到在 TinyMCE 中工作的服务器。它们以不同的命名约定保存,但它有效。

如果用户删除帖子,我可以进行后端检查并删除关联的图像。

但是TinyMCE如何处理以下情况下删除的图像呢?

  1. 编辑时上传图像。它会立即保存在服务器上,甚至在保存帖子之前。如果用户决定删除他们正在编辑的帖子中的图像怎么办?已经上传的图片如何删除?

  2. 如果用户返回并编辑帖子并删除图像怎么办?TinyMCE 如何处理服务器上已经存在的图像?

  3. 或者,如果帖子从未保存并且用户已向其中添加了图像怎么办?它们立即保存在服务器上。它们如何被删除?

人们是否只是忍受服务器上多余的、未使用的图像?

谢谢,

道格

Tin*_*oln 5

TinyMCE 并非旨在直接解决此类图像管理和上传边缘情况。它们可以(并且应该被管理),但使用内置功能来做到这一点超出了 TinyMCE 的范围。

确保您不会留下孤立文件的一种方法是,在文档本身提交保存之前不要将它们上传到您的服务器。您讨论的许多边缘情况可以通过更改automatic_uploads设置来解决。

将图像添加到 TinyMCE 时,它会作为 base64 编码的 blob URL 内联添加到内容中。您可以选择配置将该图像上传到数据库,之后,src图像标记的 会使用图像的远程数据库位置进行更新。

但是,如果关闭,则仅在调用automatic_uploads时才会上传图像。editor.uploadImages()这可以允许用户在创建内容时向内容添加和删除图像,但仅将内容(和图像)的最终版本保存到数据库中。

以下是更多信息:

https://www.tiny.cloud/docs/configure/file-image-upload/#automatic_uploads

https://www.tiny.cloud/docs/general-configuration-guide/upload-images/

如果最终用户加载包含图像(已保存到数据库)的现有内容,但从内容中删除该图像,然后重新保存内容,则解决此问题的一种方法是在内容加载到编辑器中时对其进行解析,并创建所有包含的媒体资产的列表/数组/对象,然后将其与保存时内容中的资产进行比较。然后您可以使用该列表相应地更新数据库。TinyMCE 没有提供一种特定的方法来执行此操作,因为有很多不同的方法来实现这种行为。

另一种选择是使孤立控制服务器维护成为与编辑过程完全独立的任务。一种方法是在服务器上运行定期安排的后台维护任务来解析内容并查找孤立的图像文件。