You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress图片上传报错:SyntaxError: Unexpected token b in JSON at position 0求助

解决WordPress图片上传的JSON错误与图片损坏问题

我来帮你一步步拆解这两个关联问题,先搞定JSON解析报错,再处理演示站的图片损坏情况:

一、处理SyntaxError: Unexpected token b in JSON at position 0

这个错误本质是服务器返回的不是合法JSON格式内容,而是一段以"b"开头的文本(比如"Bad Request"、PHP错误提示页),导致前端解析失败。推荐按以下顺序排查:

  • 开启WordPress调试日志抓详细错误
    在wp-config.php文件末尾添加以下代码,重新上传图片后,去wp-content/debug.log里找具体的报错信息:

    define('WP_DEBUG', true);
    define('WP_DEBUG_LOG', true);
    define('WP_DEBUG_DISPLAY', false);
    

    日志里大概率会显示PHP内存不足、GD库缺失、或某个插件的报错。

  • 检查服务器PHP错误日志
    如果WordPress日志没抓到根源,直接看服务器本身的错误日志(比如Apache的error.log、Nginx的error.log),这里会记录上传时的底层问题:比如move_uploaded_file函数被禁用、临时目录权限不足、PHP版本过低。

  • 排查插件/主题冲突
    临时切换到WordPress默认主题(如Twenty Twenty-Four),禁用所有第三方插件后再尝试上传。很多时候是安全插件、缓存插件拦截了上传请求,返回了非JSON的拦截提示。

  • 验证PHP配置参数
    确保php.ini里的以下参数数值足够:

    upload_max_filesize = 64M
    post_max_size = 64M
    memory_limit = 256M
    

    数值太小会导致上传失败,服务器返回错误文本而非JSON。

二、解决演示站图片上传后显示损坏的问题

这个情况说明文件成功上传但内容不完整或被篡改,排查方向如下:

  • 检查服务器上的原文件完整性
    登录服务器找到上传目录(通常是wp-content/uploads/[年份]/[月份]),把那个损坏的图片下载到本地,看看能不能正常打开:

    • 如果本地也打不开:说明上传时文件就被截断了,大概率是临时目录tmp_upload_dir权限错误,或服务器磁盘空间不足。
    • 如果本地能打开:说明前端读取时出问题,可能是图片URL路径配置错误,或服务器的静态文件缓存、MIME类型设置异常。
  • 确认图片处理扩展正常
    WordPress依赖GD库或Imagick扩展处理图片(生成缩略图、裁剪等),如果这些扩展未启用或版本兼容问题,会导致上传后的图片损坏。可以在WordPress后台「工具→站点健康」里查看服务器信息,确认扩展状态。

  • 再次核对文件权限
    虽然你说权限无异常,但还是要确认:

    • 上传目录wp-content/uploads的权限为755
    • 上传后的图片文件权限为644
    • 目录和文件的所属用户与服务器运行用户一致(比如Apache的www-data、Nginx的nginx)
      权限不匹配会导致文件写入不完整。
  • 排查服务器安全规则拦截
    比如ModSecurity这类防火墙规则,可能会误判图片文件为恶意内容,从而截断或修改文件内容。可以临时关闭ModSecurity测试,或查看防火墙日志是否有相关拦截记录。


内容的提问来源于stack exchange,提问作者Sum

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:54:41