搜索全站
常规配置 6 分钟阅读

WordPress 无法上传图片?媒体库报错解决方法

媒体库提示"上传时发生了错误"或"无法建立目录",图片怎么也传不上去?本文从目录权限、内存限制到服务器拦截逐层排查,教你解决 WordPress 无法上传图片的媒体库报错,让上传功能恢复正常可用,不用再为图片传不上去发愁,几步就能搞定,一次彻底解决。

U
UFO_PF 2026-10-10 · 阅读 6 分钟
Wo 常规配置
阅读提示
本文约 2,362 字,预计阅读 6 分钟。文中命令与配置均经过实测,可直接参考执行。

引言

在媒体库里上传图片,进度条走到一半突然弹出「上传时发生了错误,请稍后再试」,或者提示「无法建立目录 wp-content/uploads/2026/10」,图片怎么也传不上去。这类故障在搬家、换主机、升级 PHP 版本之后尤其常见,也很容易让人误以为是图片本身有问题,于是换格式、换浏览器反复折腾,结果一点用没有。其实 WordPress 上传图片这件事,要同时经过目录写入权限、PHP 内存与上传限制、图片处理库、服务器安全模块好几道关,任何一道卡住都会失败。下面按从外到内、从常见到少见的顺序,帮你一步步排查并解决,照着做基本都能找到症结。排查时最好记住一个原则:先看目录权限,再看内存和上传限制,最后才怀疑代码和插件,顺序对了能少走很多弯路。

故障原因分析

  1. uploads 目录权限不足或不存在。WordPress 需要往 wp-content/uploads 写文件,权限不够或属主不对就会报「无法建立目录」,这是最常见的原因。
  2. 内存或上传大小限制过低。大图生成多张缩略图时内存爆掉,上传中途失败,页面往往只给一句模糊的报错。
  3. PHP 的 GD 或 Imagick 扩展缺失。WordPress 处理图片缩放依赖这两个库,缺了就无法生成缩略图,上传到一半中断。
  4. 服务器安全模块拦截。mod_security、WAF 或安全插件把上传请求当成攻击拦下,特征是换小图能传、稍大就被阻断。
  5. 磁盘空间满了。主机磁盘写满,任何写入都会失败,表现和权限问题很像,很容易被忽略。
  6. 文件属主与 PHP 运行用户不一致。上传后文件能建但读不了,或反过来。

分步解决方案

方法一:修复 uploads 目录权限(最常见)。 用 FTP 或 SSH 检查 wp-content/uploads 目录。若不存在就先新建一个,然后赋予正确权限和属主。SSH 下执行(把 www 换成你服务器实际的运行用户,如 nginx、apache、www-data):

mkdir -p wp-content/uploads
chown -R www:www wp-content/uploads
chmod -R 755 wp-content/uploads

目录 755、文件 644 是通用安全值。宝塔面板用户可在文件管理里右键目录 → 权限,设为 755 并勾选「应用到子目录」。文件夹不存在时 WordPress 一般会自动创建,但若上层目录不可写就建不出来。

方法二:提高内存与上传限制。 在 wp-config.php 中,/ That's all, stop editing! / 之前加入:

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

再配合 php.ini 调大上传与执行时间:

upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300

改完重启 PHP 生效。如果重启后后台显示的上限没变,说明你改的这份 php.ini 不是当前 PHP 实际加载的那份,需要用 phpinfo 重新确认路径。

方法三:检查并启用图片处理库。 在宝塔「PHP → 安装扩展」里确认 GD 或 Imagick 已安装。若图片本身分辨率极大导致处理失败,可在 functions.php 临时关闭自动生成的大尺寸图:

add_filter('big_image_size_threshold', '__return_false');

方法四:排除安全模块与插件干扰。 先临时停用所有安全类插件再上传测试。若是 mod_security 拦截,可在站点 .htaccess 顶部临时写入(仅用于测试):

<IfModule mod_security.c>
SecFilterEngine Off
SecFilterScanPOST Off
</IfModule>

若确认是它导致,应联系主机商在服务器层放行图片上传,而不是长期关闭,避免留下安全缺口。

方法五:绕过媒体库直接上传。 实在搞不定后台时,可以用 FTP 把图片直接传到 wp-content/uploads/年份/月份/ 目录,再用「媒体库 → 添加 → 从服务器选择」找到它,或者装一个「Add From Server」类插件导入,先让内容能正常发布。

方法六:检查磁盘空间。 用面板或 SSH 查看磁盘占用,确认不是空间写满导致的写入失败,这种情况先清理日志或扩容,再谈其他设置。

常见踩坑点

  1. 只改了 uploads 目录权限,没改上层 wp-content 目录,结果仍无法创建新文件夹。
  2. 用 777 权限图省事,留下严重安全隐患,应该用 755 加正确属主。
  3. 改了 php.ini 忘记重启 PHP,误以为没效果。
  4. 忽略磁盘空间,怎么改权限都不好使。
  5. 长期关闭 mod_security 来「解决」问题,给站点带来风险。
  6. 上传超大原图导致处理失败,却一直以为是服务器故障,应先压缩图片再传。
  7. 属主和 PHP 运行用户不一致,文件建了却读不到。

总结

WordPress 无法上传图片的排查思路是:先看 wp-content/uploads 目录权限和属主,再检查内存、上传大小和 GD/Imagick 扩展,最后排除 mod_security、WAF 与安全插件的拦截,别忘了顺带看一眼磁盘空间。绝大多数「媒体库报错」都落在权限和内存这两点上,改完记得重启 PHP 并清理缓存验证。按这个顺序走一遍,WordPress 无法上传图片的问题通常都能定位并解决。

U
UFO_PF作者

专注 WordPress 生态的实战作者,内容以「可复制、可验证」为第一原则。

留下你的想法

邮箱地址不会被公开。带 * 的为必填项。