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

AI 智能摘要
最近搬主题在使用图片上传的时候,突然遇到图片上传失败的问题。因为搬主题用的是又拍云上传的图片,结果提示“图像后期处理失败。如果这是一张照片或较大图像,请将其缩小到2500像素并重新上传。”然后WordPress就崩溃了,错误提示为“错误信息: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

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

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

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容