【发布时间】:2019-09-26 05:08:48
【问题描述】:
我正在开发一个 WordPress 插件,供客户设计定制 T 恤,并可选择上传他们自己的图片。该插件会截取几张屏幕截图并将它们通过电子邮件发送给打印部门。
在 Javascript 中,我将屏幕截图转换为 base64 数据,然后通过 Ajax 将其发送到 PHP 文件,这将为客户的设计创建一个文件夹,从数据中创建图像并将屏幕截图存储在其中。
大多数屏幕截图/base64 数据都可以正常发送,例如,仅添加文本不会产生任何问题。但是,如果用户上传的图片放大太多,则会导致各种错误(有时是 400 错误,有时是 404 有时是 500)。
使用 Wamp 在 Windows 上通过我的本地设置运行它,这很好。我可以毫无问题地上传图像并将它们缩放到 12 倍。但是,当我在实时站点上尝试此操作时,如果我将任何图像缩放到超过 4 倍,我会遇到上述问题,并且对于大多数图像,如果我什至尝试将它们放大到超过 1 倍,就会发生这种情况。
图像的分辨率/文件大小似乎有影响,虽然不是很明显。我可以发送一个巨大的纯红色正方形或 1 倍比例的普通图像。
起初我以为这是一个 POST 数据限制问题,除了实时站点的 POST 限制是我在 WAMP 设置中设置的两倍,它没有这个问题。
还有,甚至更陌生。我测试了上传图像,但用简单的字符替换了 base64 数据(所以放大的图像存在于页面中,但它的 base64 数据不是通过 POST 发送的),我仍然有同样的问题。所以我不认为这是一个简单的 POST 限制问题。
我一生都无法找到解决方案,任何帮助将不胜感激。
【问题讨论】:
-
您查看WordPress' debug.log 是否有线索?如果有任何与您的问题相关的 PHP 通知/警告/错误消息,那是我要检查的第一件事。
-
是的,它没有显示与此特定问题相关的任何内容
-
在这种情况下,您必须在此处分享MCVE,以便我们帮助您调试问题。
标签: javascript php ajax wordpress base64