首页 > 解决方案 > 所见即所得的文本编辑器图像删除/上传逻辑

问题描述

我将 laravel 与 Summernote 所见即所得的文本编辑器一起使用。我希望用户能够在文本中插入图像。

首先我尝试使用默认的summernote上传方法。基本上它将上传图像转换为 base64 数据 url。然后发布后,在控制器中,将base64解码为实际图像,保存到服务器,并将src部分的img转换为通向当前服务器的公共图像url。

这适用于小图像。但它不适用于大图像。帖子不起作用,我没有从任何地方收到任何错误。我认为这是因为 base64 部分。我还看到了THIS THREAD这让我更想改变 base64 部分。

所以我转而使用 onImageUpload 回调,甚至没有考虑太多。我看到很多教程建议它。

使用此回调,每当用户将图像插入编辑器(在帖子之前)时,都会在 js 中调用 OnImageUpload 函数。在该函数中,ajax 将图像发送到控制器,控制器将图像保存到服务器并以其公共 url 响应。最后编辑器使用该 url 在编辑器中显示图像。

问题从删除图像开始。

有一个 OnMediaDelete 函数存在问题。例如,它不适用于删除/退格键。即使这样工作正常,用户也可以插入图片并离开页面(或使用 onMediaDelete 回调的一个错误),这意味着没有一种简单的方法来确定上传的图片是否实际用于文本中。服务器会充满未使用的图像?

你如何处理这个问题?我是否应该在编辑过程中将图像上传到临时文件中,如果在发布后使​​用,则将它们带到实际文件夹中?这需要 cron 之类的东西来保持临时文件夹为空,不是吗?这就是人们的处理方式吗?

还是我应该禁用使用文本编辑器上传图像?也许是服务器另一部分中图像的小型内容管理?

整个事情感觉很简单,但我真的很挣扎。我觉得我在这里错过了一个重要的点。请帮我。对不起这个奇怪的问题。谢谢

标签: javascriptphplaravelwysiwygsummernote

解决方案


推荐阅读