【问题标题】:How to upload inline images with post content如何上传带有帖子内容的内联图像
【发布时间】:2021-05-26 20:24:18
【问题描述】:

我如何上传带有帖子内容的图片。在 Quill js 图像存储为 base64。这是传输图像的完美方式,但有一个小问题; ajax 超时。那么我如何在添加图像或发布时上传图像。我希望我解释得很好。

--编辑--

我已经有一个可以正常工作的代码,但有一些限制。我正在使用内联 base64 图像传输图像。喜欢;

<p>Some article & post</p>
<p><img src="data:image/jpeg;base64,R0lGODl..."></p>
<p>And some bla bla</p>

主要问题是当图像变大时,它也达到了 ajax 限制 + 服务器限制。我怎样才能克服这个问题?我怎样才能以正确的方式上传图片。

【问题讨论】:

  • 要从社区获得帮助并防止您的问题被关闭或删除,请发布您询问的代码以及您为解决问题所做的任何尝试。
  • 这与代码的问题或错误无关。更像是理论问题。如果我尝试共享代码,需要共享很多行(和多个文件)。

标签: javascript php html


【解决方案1】:

需要考虑两件事。

首先,设置用户可以插入的图片大小的限制: https://stackoverflow.com/a/64383983/1772933

其次,你可以在你的ajax请求上手动设置超时

$.ajax({
    url: "test.html",
    error: function(){
        // will fire when timeout is reached
    },
    success: function(){
        //do something
    },
    timeout: 30000 // sets timeout to 30 seconds
});

【讨论】:

  • 哦,我们可以自己设置超时吗?棒极了!但是仍然有一个问题需要克服。服务器的限制。这是本地的完美解决方案。但在共享主机中,我只有 256mb 的限制。
  • 我相信 quill 本身对每张图片有 2MB 的限制。 256mb 的限制是什么?您实际上并没有存储这些图像 - 您正在接收 base64 数据并将其放入数据库中。如果您每次发送超过 256mb 的 ajax 事务,您需要重新考虑您的方法 :)
  • PHP 有 post_max_size 配置。在我的托管中,它的大小限制为 256mb(最大)。我正在尝试了解如何上传与实际帖子内容分开的图片。
  • 再一次,如果您认为您的 quill.js 帖子数据(包括图像)将接近 256mb,那么您必须在单个帖子中拥有超过 100 或两倍的图像.非常不可能。不确定您在这方面的担忧是什么,但我希望我推荐的研究、信息和工具对您有所帮助
  • 谢谢老兄,你的解决方案在短期内可以正常工作(我希望它会很短)。
【解决方案2】:

首先,我使用 EditorJS 作为富文本编辑器。感谢EditorJS,我们不必处理base64。

需求:

  • 上传图片到服务器的临时文件夹。
  • PHP 文件上传脚本。
  • EditorJS 和图像插件。

答案:

当我们将图像添加到 EditorJS 时,它将通过给定的 url 上传文件。因此,在给定的 url(PHP 文件上传脚本)处,我们会将图像上传到临时文件夹。

作为回应,我们将提供图片的完整网址。到了,图片上传了。之后,当我们提交帖子的全文时,我们从字符串中获取图像 url 并获取它们的基本名称。通过这种方式,您可以根据需要将文件移动到任何地方。不要忘记更改原始网址!

【讨论】:

    猜你喜欢
    • 2012-06-16
    • 1970-01-01
    • 2017-05-08
    • 2017-04-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-18
    • 2021-01-09
    • 1970-01-01
    相关资源
    最近更新 更多