如何使用rest在wordpress中上传媒体图像或特征图像。
我使用WordPress REST创建了新的帖子,现在我使用REST将图片上传到我的Wordpress站点,但是由于错误“没有提供数据”,请检查屏幕快照。
这是在WordPress中创建新帖子的最佳方式,在我的脑海中
发布于 2021-03-21 04:11:29
你几乎是对的,只是缺少media(image) raw binary data
。
对于python
,使用代码:
import requests
toUploadImagePath = "/xxx/xxx.jpg"
mediaImageBytes = open(toUploadImagePath, 'rb').read()
# b'\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x01\.....'
uploadImageFilename = "661b943654f54bd4b2711264eb275e1b.jpg"
curHeaders = {
"Authorization": "Bearer xxx.yyy.zzz-xxx-yyy-zzz",
"Content-Type": "image/jpeg",
"Accept": "application/json",
'Content-Disposition': "attachment; filename=%s" % uploadImageFilename,
}
resp = requests.post(
"https://www.crifan.com/wp-json/wp/v2/media",
headers=curHeaders,
data=mediaBytes,
)
完整的代码可以参考我的lib:crifanWordpress.py
和我的中文贴子:[已解决]用Python通过WordPress的REST上传图片 (将在短期内出版)
发布于 2020-01-09 20:54:26
使用REST将文件上载到WordPress非常简单。您只需要将文件在请求后发送到wp/v2/media路由。
更新的添加了数据响应真
$file = file_get_contents( 'test.jpg' );
$url = 'http://example.com/wp-json/wp/v2/media/';
$ch = curl_init();
$username = 'admin';
$password = 'password';
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt( $ch, CURLOPT_POST, 1 );
curl_setopt( $ch, CURLOPT_POSTFIELDS, $file );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt( $ch, CURLOPT_HTTPHEADER, [
'Content-Disposition: form-data; filename="example.jpg"',
'Authorization: Basic ' . base64_encode( $username . ':' . $password ),
] );
$result = curl_exec( $ch );
curl_close( $ch );
print_r( json_decode( $result ) );
更多https://gist.github.com/ahmadawais/0ccb8a32ea795ffac4adfae84797c19a
https://stackoverflow.com/questions/59671683
复制相似问题