具体表现

在文章里插入图片,提示上传时发生 HTTP 错误,小图偶尔能成功。

先判断哪一层出错

上传请求被服务器拦截或超时,返回了 HTML 错误页导致前端解析失败。判断时先分清是 WordPress 图片上传失败 本身的配置问题,还是上游调用、运行环境带进来的差异;前者改配置就能收口,后者要沿着请求链路一层层往上找,处理顺序不能颠倒。先在出问题的机器上复现一次,把报错原文和发生时间记下来,再对着日志定位。

操作步骤

  1. 查看网络面板里的实际响应内容
  2. 调大上传与执行时间限制
  3. 排查安全插件拦截规则

对应的命令或配置片段如下,可直接复制:

upload_max_filesize = 32M
post_max_size = 32M
max_execution_time = 120
# 查看响应
# 浏览器网络 -> 该请求 -> 响应

测试环境复现不了时,先对比两边的版本号和配置文件,差异往往就在被忽略的那几行里。如果同一现象隔一段时间又出现,多半是某个定时任务或重启流程把配置覆盖回去了,顺手查一遍启动脚本。

收尾检查

图片能稳定上传,响应为正常 JSON。

作者 9823189