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

Gallery3 REST API:上传新照片应POST至哪个URL?

关于Gallery3 REST API上传图片的问题解答

先给你确认下:你用的这个端点/index.php/rest/item/1是正确的!根据Gallery3的REST规范,POST到item/{parent_id}端点就是用来在指定父项目(这里ID=1的应该是根相册)下创建新内容(比如图片)的,和文档里的示例要求完全匹配。

你能正常获取相册和照片,但上传时报failed to open stream: HTTP request failed!,说明基础的API连接、认证是没问题的,问题大概率出在上传请求的细节或者服务器配置上,给你梳理几个排查方向:

  • 检查请求格式与参数
    上传图片必须用multipart/form-data格式的请求,而且要正确传递文件字段和必要参数:

    • 确保请求里包含file字段,对应你要上传的图片文件;
    • 可以额外带上name参数设置图片的显示名称;
    • 举个curl的示例命令(你可以参考调整成你用的语言):
      curl -X POST -F "name=我的测试图片" -F "file=@/本地路径/test.jpg" -b "session_id=你的会话Cookie" http://你的图库地址/index.php/rest/item/1
      
  • 验证服务器端权限
    服务器上Gallery3的上传目录(通常是var/albums/下的对应文件夹)需要有PHP进程的写入权限,如果权限不足,图库没法保存上传的图片,就会返回请求失败的错误。你可以联系服务器管理员或者自己检查目录权限设置。

  • 排查PHP上传限制
    服务器的PHP配置可能限制了上传文件的大小:

    • 检查upload_max_filesize和post_max_size两个参数,确保它们的值大于你要上传的图片大小;
    • 如果是小图片能上传、大图片失败,基本就是这个问题,修改php.ini后重启web服务器即可。
  • 确认目标相册的有效性
    先通过GET请求/index.php/rest/item/1确认这个项目是相册类型(返回的JSON里type字段应该是album),只有相册才能作为上传图片的父项目,如果ID=1是个图片的话,肯定没法上传。

  • 查看服务器日志
    去看Gallery3的应用日志(一般在var/logs/目录)或者web服务器的错误日志(比如Apache的error.log),里面会有更详细的错误信息,比如参数错误、文件写入失败的具体原因,能帮你快速定位问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:49:46