在TinyMCE中,如何处理上载到服务器然后在编辑器中删除的图像?
我通过拖放和图像上传对话框将图像上传到TinyMCE中的服务器。它们使用不同的命名约定保存,但它是有效的 如果用户删除帖子,我可以进行后端检查并删除相关图像 但是TinyMCE如何处理在以下情况下删除的图像在TinyMCE中,如何处理上载到服务器然后在编辑器中删除的图像?,tinymce,Tinymce,我通过拖放和图像上传对话框将图像上传到TinyMCE中的服务器。它们使用不同的命名约定保存,但它是有效的 如果用户删除帖子,我可以进行后端检查并删除相关图像 但是TinyMCE如何处理在以下情况下删除的图像 编辑时上载图像。它会立即保存到服务器上,甚至在保存帖子之前。如果用户决定删除他们正在编辑的帖子中的图像该怎么办。如何删除已上载的图像 如果用户返回并编辑帖子并删除图像怎么办?TinyMCE如何处理已经在服务器上的映像 或者,如果帖子从未保存,而用户已向其中添加了图像,该怎么办?它们会立即
dougTinyMCE的设计目的不是直接解决此类图像管理和上传边缘情况。它们可以(也应该被管理),但TinyMCE不允许使用内置功能来管理它们 确保不会留下孤立文件的一种方法是,在提交文档保存之前,不要将它们上载到服务器。您所讨论的许多边缘情况都可以通过更改
自动上传设置来解决
将图像添加到TinyMCE时,它将作为base64编码的blob URL内联添加到内容中。您可以选择配置将该图像上载到数据库,之后,图像标记的src
将使用图像的远程数据库位置进行更新
但是,如果关闭自动上传
,则仅当调用编辑器.uploadImages()
时才会上传图像。这允许用户在创建内容时向内容添加和删除图像,但仅允许将内容(和图像)的最终版本保存到数据库中
以下是更多信息:
如果最终用户加载包含图像(已保存到数据库)的现有内容,但从内容中删除该图像,然后重新保存该内容,解决此问题的一种方法是在将内容加载到编辑器中时对其进行解析,并创建包含的所有媒体资产的列表/数组/对象,然后在保存时将其与内容中的资产进行比较。然后可以使用该列表相应地更新数据库。TinyMCE没有提供一种具体的方法来实现这一点,因为有很多不同的方法来实现这种行为
另一个选项是使孤立控件服务器维护成为与编辑过程完全独立的任务。一种方法是在解析内容并查找孤立图像文件的服务器上定期运行后台维护任务。谢谢您的详细回答。我得出了大致相同的结论。在我们的服务器上,我们有与编辑(post和pre)相关联的过滤器,我可以看到这些过滤器用于处理其中一些问题。例如,最初将图像上载到临时区域,然后当用户保存post时,运行过滤器将图像移动到live imageUploads文件夹,并使用正则表达式更新img标记src属性。类似地,当删除帖子时,我可以运行一个“pre”过滤器,首先查找提到的图像并将其从live imageUploads文件夹中删除。如果您关闭自动上传
,那么如果您在编辑时切换到show source,您不会看到base64内容吗?