WordPress REST API:无法上载contenttype图像/jpeg

2024-05-08 17:08:47 发布

您现在位置:Python中文网/ 问答频道 /正文

wordpressretapi显然不允许我上传内容类型为“image/jpeg”的文件。在

如果将内容类型设置为空字符串,则可以创建媒体项并上载附加文件(该文件同时出现在媒体库和wp_content/uploads目录中)。然而,这样做会导致一个WordPress无法处理的无效图像。在

这是我使用的代码:

def post():
    url = 'https://www.example.com/wp-json/wp/v2/media'
    data = open('C:\\Pictures\\foo.jpg', 'rb').read()
    r = requests.post(url=url,
                    files={'filename1': data},
                    data={'title': 'Files test'},
                    headers={'Content-Type': '', 'Content-Disposition': 'attachment; filename={}'.format('foo.jpg')},
                    auth=('username', 'password'))
    return (r.status_code, r.text)

当我将Content Type设置为'image/jpg'、'image/jpeg'、'image'、'multipart'、'application'或'application/image'(我越来越绝望了)我得到了403。在

如果我按照其他人的建议将其设置为“application/json”,则会得到一个400,其中包含“invalid json body passed”。在

如果我省略了内容类型,我会得到一个500,并显示以下消息:

^{pr2}$

我的文件不是空的(它是26kB),建议PHP.ini文件如果我能够上载内容类型为“”的文件,则可能无法应用错误。在

有什么建议吗?在


Tags: 文件imagejsonurl类型内容datafoo
1条回答
网友
1楼 · 发布于 2024-05-08 17:08:47

好的,我有一个方法可以正确上传图像(只需上传数据而不是文件):

def post():
    url = 'https://www.example.com/wp-json/wp/v2/media'
    data = open('C:\\Pictures\\foo.jpg', 'rb').read()
    r = requests.post(url=url,
                    data=data,
                    headers={'Content-Type': '', 'Content-Disposition': 'attachment; filename={}'.format('foo.jpg')},
                    auth=('username', 'password'))
    return (r.status_code, r.text)

请注意,Content Type仍然设置为“”,但它现在可以正常工作。在

相关问题 更多 >