如何修复 WordPress 中的图像上传错误
已发表: 2018-02-28最近,我们发布了修复 WordPress 错误的完整指南,我们的一位读者通过电子邮件向我们发送电子邮件,了解如何修复 WordPress 中的图像上传错误。 不是很长一段时间我都记不起我自己博客上的这个错误,这让我整晚都在挣扎并找出问题并修复它。
那时我的博客才刚刚开始,所以我没有发布那个解决方案,但是帮助其他人解决这个奇怪的问题永远不会太晚。
基本上,有了这个问题,您无法在 WordPress 中上传任何图像,如果上传成功,它将在媒体库中显示图像已损坏。 在本文中,我们将向您展示如何修复 WordPress 中的图片上传问题。
这就是您可能面临 WordPress 上传图像错误的原因。
- 图片大小
- PHP 内存
- 国防部安全
- 插件冲突
- 文件权限
- 服务器上的 PHP 版本
图片大小
当您尝试上传像素大小较大的图像时会发生这种情况,例如,4000 x 3000 像素的图像。 这对于您的服务器来说太大而无法处理。
即使您的图像小于该大小,某些服务器也会显示错误,这完全取决于您的服务器资源。
解决方案
减小图像的大小。 例如,不要添加非常大的像素图像。 如果您的帖子内容区域为 800 像素宽,请不要添加大于该宽度的图像。
通过反复试验减小图像大小,直到您能够上传它而不会出现任何错误。 如果您使用高级 WordPress 主题,对于大多数 WordPress 网站来说 1075 像素就足够了,请查看其文档以了解所需的图像大小。
由于它没有足够的空间来扩展并且它所做的只是缩小到那个空间,问题是在上传那个大小的图像时,WordPress 会消耗大量的内存。 由于某些服务器限制了 WordPress 可以使用的内存量,在这种情况下,它会在上传时导致错误。
PHP 内存
WordPress 的功能和资源毕竟是在 PHP 上运行的,而且运行 PHP 的服务器可以限制这些资源。
您可以自行增加 PHP 内存,也可以咨询您的网络托管支持团队。 内存可以通过两种方式增加:
解决方案
- 增加 WordPress 内存
- 增加 PHP 内存
您可以通过在位于 WordPress 根目录中的 wp-config.php 中添加此代码来增加 WordPress 内存。
定义('WP_MEMORY_LIMIT','256M');
如果您的主机/服务器不允许您增加 PHP 内存限制或在一定程度上限制它,则上述设置可能不起作用,因此我建议直接与您的支持人员联系并要求他们为您更改限制。 你会跳过麻烦。 最好要求支持团队增加您的 PHP 内存,但如果您喜欢麻烦,请将以下代码添加到您的 php.in 或 php5.ini
memory_limit 256M
国防部安全
您可能从未注意到这种安全性,或者您知道这一点。 ModSecurity 也被称为 .htaccess,我希望你已经在你的 WordPress 根目录中看到了这个文件,大部分情况下它是隐藏的。
如果您的服务器启用了 mod 安全性,那么在您的情况下,这个文件可能会导致问题。
解决方案
您需要为上传禁用 mod 安全性,因此在 wp-admin 文件夹中创建一个 .htaccess 并添加以下代码。
<IfModule mod_security.c>
SecFilterEngine 关闭
SecFilterScanPOST 关闭
</IfModule>
这将禁用 wp-admin 中上传文件接收代码的 mod_security。
注意:如果它在您的服务器上导致任何错误,请删除它。
插件冲突
已经确认,在大多数情况下,插件与上传过程发生冲突。 在许多情况下,甚至我的博客也遭受了插件冲突的困扰。
这是由于一些过时的插件或由于升级到一个或其他插件或 WordPress 的最新版本而触发的一些语法错误。
我发现有助于上传、缩小或压缩图像的插件大多会出现错误。 在某些情况下,如果您使用该应用程序压缩或渲染图像,某些桌面应用程序也会触发此错误。
此外,jetpack、有助于上传到 cdn 或 aws 或远程服务器的插件会导致 WordPress 在上传图像时出错。
解决方案
请继续一次禁用一个插件。 清除您的缓存和浏览器历史记录并重新访问媒体上传器以上传您的图像,看看您是否成功。
如果没有尝试不使用任何 WordPress 插件和桌面应用程序并上传原始 .png 或 .jpg 并检查它是否有效。
文件权限
如果不是插件或内存有限导致上传图像时出错,那么我建议您查看服务器上的文件权限。
即使您没有更改文件权限,它也会自动更改。
想知道。 它是如何改变的?
如果您的托管公司在其服务器上运行升级或您已更新插件,则可以更改文件权限。
如果您使用的是共享网络托管,则可能是黑客访问了您的文件,并且您的文件权限可能已被黑客上传的有效负载更改。
您可以通过 FTP 程序轻松更改文件权限,我在我的 mac 和 windows pc 上都使用 Cyberduck 进行 ftp。
通过 FTP 访问您的文件,然后转到/wp-content/目录。 在那里你会看到/uploads/文件夹。 右键单击上传目录并选择文件权限。
首先,您需要将上传目录本身和其中的所有子目录的文件权限设置为744 。 为此,请在数值框中输入 744 ,然后选中递归到子目录旁边的框。
最后,您需要单击“仅应用于目录”单选按钮。 单击确定按钮以应用这些更改。
您需要重复相同的过程,但对于上传文件夹。
您需要为上传目录中的所有文件设置文件权限。 为此,请右键单击上传目录并选择文件权限。
在文件权限中,对话框将数值更改为644 。 选中Recurse into subdirectories旁边的框。 单击仅应用于文件单选按钮。 单击确定按钮以应用这些更改。
您的 FTP 程序将应用此更改,并且您的图像上传器将再次工作
服务器上的 PHP 版本
在解决此错误时,您在执行的整个任务中都不会注意到它,因为在大多数情况下,没有人会想到这一点。
为什么任何人都应该,因为在大多数情况下,用户说它在我点击更新按钮之前一直工作到昨天?
但是更新插件、主题或 WordPress 可能会触发此错误和其他几个错误,因为 WordPress 是基于 PHP 构建的,并且它有一些要遵循的标准,因此开发人员总是统计对 WordPress 稳定的版本。
如果您的服务器 PHP 版本与 WordPress 要求的不同,请联系您的服务器支持人员并要求他们将您的 PHP 版本更改为 WordPress 的要求。
结论
(更新) 。 我们的一些读者指出了这个修复。 我们为此感谢他们!
确保图像文件的名称中没有撇号(例如 john's-blogging.png),因为这也会触发错误。
(更新) 。 如果您使用的是图像优化器插件,请停用该插件并查看是否可以解决问题。
如果您仍然面临问题,请告诉我。 我很乐意为您提供帮助,并在下方评论哪种方法可以解决此错误。