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

如何解决Python调用WordPress REST API上传图片至媒体库失败问题

WordPress REST API 图片上传问题修复

核心问题分析

你的代码存在两个关键错误:

  • 直接通过data参数传递二进制文件内容,没有采用WordPress要求的multipart/form-data上传格式,API无法识别这是新文件上传请求,因此返回了已存在的媒体数据。
  • 手动设置Content-Disposition和Content-Type头,与实际请求格式不匹配,干扰了API的解析逻辑。

修复后的代码

import requests

# 使用with语句安全打开文件,避免资源泄漏
with open("photo.jpg", 'rb') as photo_file:
    # 通过files参数构建标准的multipart/form-data请求
    files = {
        'file': ('photo.jpg', photo_file, 'image/jpeg')
    }
    response = requests.post(
        url='https://DOMAIN-NAME.com/wp-json/wp/v2/media',
        auth=('admin', 'APpL IcaT iONp assW ordW Padm'),
        files=files
    )

# 打印状态码和响应内容,便于排查问题
print(response.status_code)
print(response.json())

关键注意事项

  • 权限验证:确保你的应用密码正确,且关联的用户账户拥有upload_files权限(管理员默认拥有该权限)。
  • 请求格式:无需手动设置上传相关的请求头,requests会通过files参数自动生成符合规范的multipart/form-data头信息。
  • 服务器配置:若修复后仍失败,检查服务器的PHP配置(upload_max_filesize、post_max_size)是否足够容纳图片大小,或安全插件是否拦截了REST API请求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 09:00:09