如何通过WP REST API上传媒体?Postman上传遇问题求助
解决WP REST API + Postman 媒体上传问题
Hey there! Let's get this media upload sorted out for you—WP REST API can be a bit finicky with file uploads, but once you nail the setup it's smooth sailing. Here's exactly what you need to do:
第一步:确认认证权限
WP REST API 不允许匿名用户上传媒体,所以得先搞定身份验证:
- 如果你的WordPress版本是5.6+,优先用应用密码:在WP后台→用户→个人资料→应用密码,生成一个新密码并妥善保存。
- 或者启用Basic Auth:你可以通过在WP主题的
functions.php添加代码或安装对应插件开启,但应用密码的安全性更高。 - 在Postman里配置认证:
- 切换到「Authorization」标签
- 类型选「Basic Auth」
- 用户名填你的WP后台用户名,密码填生成的应用密码(或WP登录密码,如果你用的是Basic Auth)
第二步:Postman请求的正确配置
这是核心环节,千万别再传文件路径字符串了,要上传实际文件:
- 请求方法与URL:
- 方法选
POST - URL填
https://你的站点域名/wp-json/wp/v2/media(替换成你的实际域名)
- 方法选
- 请求头:
- 不用手动设置
Content-Type!Postman会在你选择form-data上传文件时自动生成正确的multipart/form-data头,手动设置反而容易出错。 - 可以额外添加
Accept: application/json确保返回JSON格式的响应。
- 不用手动设置
- Body部分(重点!):
- 切换到「Body」标签,选择「form-data」
- 点击「Key」输入框,输入
file - 把右边的类型从「Text」改成「File」(这是你之前出错的关键!)
- 点击「Select Files」,选择本地要上传的图片文件
- (可选)如果要设置图片的alt文本、标题,可继续添加键值对:
- 键名
alt,类型Text,值填你想要的alt描述 - 键名
title,类型Text,值填图片标题
- 键名
常见问题排查
如果还是出错,对照下面的情况逐一排查:
- 传文件路径得到错误响应:这是正常的,API接收的是二进制文件,不是字符串格式的路径,必须选「File」类型上传实际文件。
- 401/403权限错误:检查认证信息是否正确,你的WP用户账号是否拥有「上传媒体」的权限(编辑、作者以上权限默认具备,订阅者没有)。
- 413请求过大错误:检查WP后台→设置→媒体里的「最大上传文件大小」,同时确认服务器php.ini里的
upload_max_filesize和post_max_size参数是否足够大。 - 上传后图片损坏或响应异常:尽量使用英文文件名,避免中文、特殊字符或空格,防止编码问题导致异常。
测试请求
设置完成后点击「Send」,如果成功,你会收到包含媒体信息的JSON响应,示例如下:
{ "id": 123, "date": "2024-05-20T12:34:56", "guid": { "rendered": "https://你的站点域名/wp-content/uploads/2024/05/your-image.jpg" }, "title": { "rendered": "你的图片标题" }, // 其他字段... }
如果还有问题,把响应里的错误信息贴出来,我可以帮你进一步排查!
内容的提问来源于stack exchange,提问作者linktoahref
相关产品推荐
相关产品推荐

