原 picgo上传图片可以成功,但不能正确获取url地址,报错upload failed
Tags: 原创故障处理TyporaPicGo图床EasyImages
文章目录[隐藏]
现象
我的图床是EasyImages2.0,使用picgo可以正常上传,但是不能获取url地址,日志报错:upload failed
1 2 3 4 5 6 7 8 9 10 11 | 2026-01-04 16:40:30 [PicGo INFO] [PicGo Server] get the request {"list":["C:\\Users\\lhr\\AppData\\Roaming\\Typora\\typora-user-images\\image-20260104154622529.png"]} 2026-01-04 16:40:30 [PicGo INFO] [PicGo Server] upload files in list 2026-01-04 16:40:30 [PicGo INFO] Before transform 2026-01-04 16:40:30 [PicGo INFO] Transforming... Current transformer is [path] 2026-01-04 16:40:30 [PicGo INFO] Before upload 2026-01-04 16:40:30 [PicGo INFO] beforeUploadPlugins: renameFn running 2026-01-04 16:40:30 [PicGo INFO] Uploading... Current uploader is [web-uploader] 2026-01-04 16:40:30 [PicGo SUCCESS] 2026-01-04 16:40:30 [PicGo INFO] [PicGo Server] upload result 2026-01-04 16:40:30 [PicGo WARN] [PicGo Server] upload failed |
这个问题很典型:图片实际上传成功了,但 Typora 无法获取返回的 URL。这是因为 web-uploader 配置有问题,PicGo 无法正确解析上传后的返回结果。
从日志可以看到:
- ✅ 图片上传成功(有
[PicGo SUCCESS]) - ❌ 但
[PicGo Server] upload failed - 问题在于:PicGo 无法从 API 响应中提取出图片 URL
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| 上传成功但无URL | jsonPath 配置错误 | 调试API响应,修正jsonPath |
| 直接显示失败 | API 地址错误 | 检查API地址是否可访问 |
| 网络错误 | 需要代理或特殊header | 配置headers或代理设置 |
| 返回格式不符 | API响应不是JSON | 设置 responseType: "text",使用正则提取 |
排查
picgo上传自定义图床,需要安装插件 web-uploader 插件,然后进行配置,如下:
debug的方法:这里,我们可以把json路径的值删除,留空,然后再进行上传图片,发现返回值为:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <br />n <b>Warning</b>: Undefined array key "chunks" in <b>/www/wwwroot/pic.dbaup.com/api/index.php</b> on line <b>50</b> <br />n <br />n <b>Warning</b>: Undefined array key "md5_black" in <b>/www/wwwroot/pic.dbaup.com/api/index.php</b> on line <b>114</b> <br />n { "result":"success", "code":200, "url":"https://pic.dbaup.com/i/2026/01/05/20260105104057383-3.png", "srcName":"20260105104057383", "thumb":"https://pic.dbaup.com/app/thumb.php?img=/i/2026/01/05/20260105104057383-3.png", "del":"https://pic.dbaup.com/app/del.php?hash=Y3ZzNngrUFN0Y2hLY1lkNVJUaHZPYXFXMXQ1cGdlNnhPa3dsWDNRejJYRERqYnF1VGc9PQ==", "id":3, "message":"success" } |
这是 PicGo 上传成功了,但你的图床 API(PHP)在返回 JSON 前产生了 PHP Warning,所以 PicGo 收到的是「带 HTML 警告的 JSON」,看起来就很怪。
👉 核心结论先给你:
- ✅ 图片已经上传成功(
result":"success") - ❌ 你的
index.php里 数组下标未定义,需要修代码 - ⚠️ 不修的话,某些 PicGo 插件/Typora 可能解析失败
问题现象拆解(你这个返回值)
1 2 3 4 | Warning: Undefined array key "chunks" in index.php on line 50 Warning: Undefined array key "md5_black" in index.php on line 114 {"result":"success","code":200,"url":"https://pic.dbaup.com/i/2026/01/05/xxx.png"} |
说明三件事:
- PHP 先输出了 Warning(HTML)
- 然后才输出 JSON
- PicGo 期望纯 JSON,但被“污染”了
解决
修改文件/www/wwwroot/pic.dbaup.com/api/index.php,在文件头,添加如下内容,否则 任何一个 Warning 都会破坏 JSON:



