当前位置: 首页 > news >正文

WordPress 上传图片报错:明明是 PNG,却提示「请转换为 JPEG 或 PNG 格式」?

背景

在媒体库上传图片一切正常,但在文章编辑器中上传时,却突然报错:

{"code": "rest_upload_image_type_not_supported","message": "Web 服务器无法为该图像生成响应式图像大小。请在上传前将其转换为 JPEG 或 PNG 格式。"
}

明明上传的就是 PNG 啊?🤔
WordPress 这次又在搞什么幺蛾子?


一、问题复现:媒体库能传,文章里不行?

这个坑非常诡异:

  • ✅ 在「媒体库」中手动上传图片,一切正常;
  • ❌ 在文章中直接插入图片,就报错;
  • ✅ 图片格式确实是 image/png
  • ❌ 错误提示却说「请转换为 JPEG 或 PNG」。

这说明:

WordPress 的 REST API 在生成响应式图像尺寸时失败了,也就是说——不是上传的问题,而是「生成缩略图」阶段崩了。


二、排查过程:从「PHP 图像扩展」入手

WordPress 生成缩略图时,底层依赖两种图像处理引擎:

图像处理引擎PHP 扩展名作用
GD Libraryphp-gd轻量,支持常见 PNG/JPEG
ImageMagickphp-imagick功能强,支持 WebP、HEIC、AVIF 等

只要这两个之一能用,WordPress 就能生成多尺寸缩略图。

于是执行检查命令:

php -m | egrep -i 'gd|imagick'

结果 😶 —— 没有任何输出

至此可以确定:
服务器根本没有启用任何图像处理扩展


三、罪魁祸首:PHP-FPM 没加载 GD

接着我查系统服务:

systemctl status php8.3-fpm

发现系统中存在两个 FPM 池(wwwth333),这就意味着:

  • CLI(命令行执行 php)和 FPM(WordPress 实际执行)使用的是不同的配置文件
  • CLI 侧就算安装了 GD,FPM 池没加载,也一样会报错;
  • WordPress 在文章中上传图片,是通过 REST API(FPM 执行)——因此出错。

四、修复步骤:让 FPM 加载 GD + Imagick

以 Ubuntu / Debian 为例,执行以下命令即可:

sudo apt-get update
sudo apt-get install -y php8.3-gd php8.3-imagick
sudo systemctl restart php8.3-fpm
sudo systemctl restart nginx

验证是否安装成功:

php -i | grep -A3 "gd support"
# 或在网页中放一个 phpinfo.php

应看到:

GD Support => enabled
PNG Support => enabled

大功告成。


五、原理揭秘:为什么媒体库没事?

WordPress 在两种场景下处理图片的方式不同:

场景触发方式图像生成逻辑
媒体库上传后台表单上传不会立刻生成响应式图像
文章编辑器上传REST API (/wp-json/wp/v2/media)会实时生成多尺寸缩略图

当 PHP 缺少图像扩展时:

  • 媒体库上传只是把文件存进去;
  • 而文章中上传必须生成 responsive image;
  • 缺扩展 → 生成失败 → rest_upload_image_type_not_supported

六、最佳实践:防止再次踩坑

  1. 同时安装并启用 GD 与 Imagick

    sudo apt-get install -y php8.3-gd php8.3-imagick
    
  2. wp-config.php 中优先使用 GD

    define('WP_IMAGE_EDITORS', ['WP_Image_Editor_GD', 'WP_Image_Editor_Imagick']);
    
  3. 确认 FPM 池共享相同的 php.ini

    grep "listen" /etc/php/8.3/fpm/pool.d/*.conf
    

    确保所有站点都跑在已启用扩展的池上。

  4. 重启 FPM 与 Web

    sudo systemctl restart php8.3-fpm nginx
    

七、写在最后

这次的问题看似是「图片格式不支持」,实际上是 PHP 环境缺少图像处理能力
媒体库之所以没问题,是因为那一步根本没触发缩略图生成。

WordPress 提示你「请转换为 JPEG 或 PNG」只是个假象
真正的原因是:你的 PHP 不知道该怎么生成它。

所以,下次再遇到这种莫名其妙的格式错误,别急着怀疑图片,
先查查 GD 和 Imagick 在不在。


如果这篇文章帮你解决了问题,记得:
点赞 + 收藏 + 关注 🔥
我会继续更新更多实战型踩坑记录,让每一次「为什么?」都有答案。


http://www.dtcms.com/a/540612.html

相关文章:

  • annotation-logging-guide
  • 没有公司做网站重庆网站推广入口
  • 管理k8s的资源类型(PV/PVC)的脚本
  • 【记录】飞书多维表格|做自动显示当前填写情况(包括填写人数、未填写情况、最高分和平均分)的收集表
  • 清除入侵痕迹(winLinuxweb)
  • 找设计师的网站淘宝客 网站建设
  • 第六部分:VTK进阶(第175章 并行 IO管线与检查点)
  • 河南海绵城市建设网站wordpress中文版书籍
  • Opencv(三): 二值化
  • GitHub使用技巧——上传本地项目
  • 网站建设用途一个旅游网站建设需求分析
  • 甜品网站网页设计代码网上免费推广
  • 渗透测试工具 windows上搭建vmware kali-linux
  • ecstore等产品开启缓存-后台及前台不能登录原因-setcookie+session问题
  • 哨兵原理、Redis分片、Redis数据结构、内存回收、缓存问题以及分布式事务相关内容(CAP、BASE、AT脏写及其解决、TCC、最大努力通知)
  • Windows图标修复--缓存重建教程
  • 服务器上用Slurm 管理训练bash 脚本任务,申明使用GPU
  • 上海小程序网站开发公司wordpress国外主题下载地址
  • 新城镇建设官方网站kali建设网站
  • 便携式el检测仪:确保光伏组件的质量与性能稳定
  • 英一2015年真题学习笔记
  • Docker 部署银河麒麟(Kylin Linux)全流程教程
  • GPT、DeepSeek等大语言模型应用
  • 大语言模型基础LLM:Transformer和大模型
  • 本地用docker开发的php 程序如何部署到阿里云的ecs上
  • html css js网页制作成品——一念关山HTML+CSS网页设计(5页)附源码
  • BuildingAI二开 Coze套餐管理页面PRD
  • 加强学院网站的建设与管理一个完整的外贸流程
  • 大屏开发,在线歌词舆情分析系统demo,基于python,flask,web,echart,nlp,自然语言数据库mysql。
  • 网站后台上传缩略图高端网站开发哪家强