又拍云图片上传失败提示“图像后期处理失败”“错误信息:Uncaught GuzzleHttp\Exception\ClientException: ”解决办法

WordPress

最近搬主题在使用图片上传的时候,突然遇到图片上传失败的问题。因为搬主题用的是又拍云上传的图片,结果提示“图像后期处理失败。如果这是一张照片或较大图像,请将其缩小到2500像素并重新上传。”然后WordPress就崩溃了,错误提示为“错误信息:Uncaught GuzzleHttp\Exception\ClientException”等等。这里搬主题就分享一下这个问题的解决办法。

当时主要是图片上传失败,然后后WordPress台直接提示图像后期处理失败。如果这是一张照片或较大图像,请将其缩小到2500像素并重新上传。

如果是英文版的话提示应该如下:

英文提示:Post-processing of the image failed. If this is a photo or a large image, please scale it down to 2500 pixels and upload it again.

接下来WordPress就崩溃了,收到邮件如下:

错误类别E_ERROR发生在文件/a/banzhuti.com/www/wp-content/plugins/wpupyun/sdk/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php的113行。错误信息:Uncaught GuzzleHttp\Exception\ClientException: Client error: `HEAD http://v0.api.upyun.com/bzt-img/2020/12/1ca444cuu0.png` resulted in a `401 Unauthorized` response in /a/banzhuti.com/www/wp-content/plugins/wpupyun/sdk/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php:113 

如何解决这个问题呢?先处理第一个

1、图片大于2500px的问题解决办法

因为WordPress自带了一个自动处理图片的功能,当上传新图像时,WordPress将通过检查其高度或宽度是否大于来检测它是否为“大”图像big_image threshold。默认阈值为2560px,可以使用新big_image_size_threshold过滤器进行过滤。

如果图像的高度或宽度大于此阈值,则将按比例缩小该阈值,并将其用作最大高度和最大宽度值。缩小的图像将用作最大可用尺寸。

在这种情况下,原始图像文件存储在uploads目录中,其名称存储在图像元数组中的另一个数组键中original_image。为了始终获得原始上传图像的路径,wp_get_original_image_path()引入了一个新功能。

解决办法也很简单

a、清空缓存

b、禁用图片过滤器

在你的模板文件夹下的functions.php文件内添加如下代码

//禁用WordPress大图片(2560大小)裁剪功能
add_filter( 'big_image_size_threshold', '__return_false' );

c、上传前将图片宽度处理小于800px

d、增加PHP内存限制

可以在站点的wp-config.php文件来增加PHP内存限制

define( 'WP_MEMORY_LIMIT', '256M' );

e、如果是Nginx系统的话,将client_max_body_size调大

以上设置基本可以解决第一个问题。但是搬主题上传的图片很小,都是提示失败。因此将注意力转移到第二个问题上

2、提示“Uncaught GuzzleHttp\Exception\ClientException”解决办法

因为其中的问题描述说到了“resulted in a `401 Unauthorized”,也就是401未经授权,那就是权限的问题。这里搬主题将能上传的图片文件夹权限重新设置了一遍,然后又拍云的API密钥接口等全部设置一遍后,问题还是没有解决。

最终搬主题想到了在问题出现的时候,服务器曾经不能访问了几十秒,难道服务器的问题?于是登陆SSH查看,终于发现问题所在。

因为服务器重启了,导致服务器时间与本地时间不对,导致时间差引起函数判断错误,结果上传失败。那么接下来就解决时间问题。

之前搬主题曾经介绍了相应的时间不对的问题,如下

Centos7服务器时间不同步导致WordPress网站时间总是慢8个小时的解决办法

那么我们只要将时间同步即可

目前比较常用的做法就是使用 ntpdate 命令来同步时间,使用方法如下:

#安装ntpdate
yum -y install ntpdate
#同步时间
ntpdate -u  pool.ntp.org
#同步完成后,date命令查看时间是否正确
date

同步后,图片上传正常,也不报错了,问题解决。

关于服务器时间不同步的问题,有时候会引起一些插件的函数错误,这里大家要注意。

 收藏 (0) 赞助

您可以选择一种方式赞助本站

支付宝扫一扫赞助

微信钱包扫描赞助

除特别注明外,本站所有文章均基于CC-BY-NC-SA 4.0原创,转载请注明出处。
文章名称:《又拍云图片上传失败提示“图像后期处理失败”“错误信息:Uncaught GuzzleHttp\Exception\ClientException: ”解决办法》
文章链接:https://www.banzhuti.com/1512.html
分享到: 生成海报
版权免责声明

① 本站提供的资源(插件或主题)均为网上搜集,如有涉及或侵害到您的版权请立即通知我们。
② 本站所有下载文件,仅用作学习研究使用,请下载后24小时内删除,支持正版,勿用作商业用途。
③ 因代码可变性,不保证兼容所有浏览器、不保证兼容所有版本的WP、不保证兼容您安装的其他插件。
④ 本站保证所提供资源(插件或主题)的完整性,但不含授权许可、帮助文档、XML文件、PSD、后续升级等。
⑤ 由本站提供的资源对您的网站或计算机造成严重后果的本站概不负责。
⑥ 使用该资源(插件或主题)需要用户有一定代码基础知识!另本站提供汉化使用安装教程,仅供参考。
⑦ 有时可能会遇到部分字段无法汉化,同时请保留作者汉化宣传信息,谢谢!
⑧ 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需。
⑨ 如果喜欢本站资源,欢迎捐助本站开通会员享受优惠折扣,谢谢支持!
⑩ 如果网盘地址失效,请在相应资源页面下留言,我们会尽快修复下载地址。

热门文章

评论 抢沙发

评论前必须登录!

立即登录   注册

WordPress主题 插件 建站 汉化

定制服务联系我们
切换注册

登录

点击按钮进行验证

忘记密码 ?

您也可以使用第三方帐号快捷登录

切换登录

注册

我们将发送一封验证邮件至你的邮箱, 请正确填写以完成账号注册和激活