- 解决-如何上传照片到WordPress媒体库通过WordPress的REST API与Python?

lf3rwulv  于 2023-03-07  发布在  WordPress
关注(0)|答案(1)|浏览(247)

无法上传照片到WordPress媒体库通过WordPress的REST API的第二天。WordPress版本6.1.1 我很清楚,这个和类似的问题已经提出了StackOverflow很多次,我已经阅读了可能所有的。我试图使用一些建议的解决方案,但不幸的是,没有脚本上传照片到WordPress。

我试图最小化我希望工作的代码示例 *:

import requests

photo_data = open("photo.jpg", 'rb').read()
headers = {"Content-Disposition": "attachment; filename=photo.jpg",
           "Content-Type": "image/jpeg"}
r = requests.post(url='https://DOMAIN-NAME.com/wp-json/wp/v2/media',
                  auth=('admin', 'APpL IcaT iONp assW ordW Padm'),
                  headers=headers,
                  data=photo_data)
print(r)
  • .请注意,我有意不分享我的帐户详细信息以及我的真实的网站的域。

所以我的问题是我做错了什么,我如何让代码工作?

PS所有我得到的回应是关于以前通过 Jmeter 板上传到WordPress媒体库的照片的数据。

kd3sttzy

kd3sttzy1#

我终于设法让WordPress接受照片上传。下面你会看到一个100%工作的基本版本的解决方案。所有你需要做的是更换用户名应用程序密码,你将能够上传照片到您的网站以及。请记住,你需要提前获得应用程序密码,可以直接在WordPress设置中获得(密码是动态生成的)。这种方法适合每个安装了WordPress 5. 6或更高版本的人。

import requests

USER = 'admin'
APPLICATION_PASSWORD = 'APpL IcaT iONp assW ordW Padm'
photo_data = {'file': open('photo.jpg', 'rb')}

response = requests.post(url='https://DOMAIN-NAME.com/wp-json/wp/v2/media',
                         auth=(USER, APPLICATION_PASSWORD),
                         files=photo_data)
print(response.text)

也可以使用只需要填充参数的函数:

import requests

def upload_photo_to_wp(basic_url, user, application_password, photo_path):
    response = requests.post(url=f'https://{basic_url}/wp-json/wp/v2/media',
                             auth=(user, application_password),
                             files={'file': open(photo_path, 'rb')})
    return response

这样,您就可以轻松地将您想要的照片发送到WordPress媒体库。* upload_photo_to_wp函数的参数:*

*basic_url是您网站的URL(例如,“your-website.com“)
*用户是您的WordPress用户的名称,他拥有管理员权限
*application_password是WordPress将为您生成的上述密码(您可以在WordPress设置中获得)
*photo_path是本地照片文件的路径

相关问题