Если я установлю тип контента пустым string, я могу создать медиа-элемент и загрузить прикрепленный файл (который появляется как в медиа-библиотеке, так и в каталоге 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)
Если я установлю «application/json», как предлагают другие, я получу 400 с «недействительным» Тело JSON передано».
Если я опущу Content-Type, я получу 500 со следующим сообщением:
Код: Выделить всё
{"code":"rest_upload_unknown_error","message":"File is empty. Please upload something more substantial. This error could also be caused by uploads being disabled in your php.ini or by post_max_size being defined as smaller than upload_max_filesize in php.ini.","data": {"status":500}}')
Пожалуйста, есть предложения?
Подробнее здесь: https://stackoverflow.com/questions/449 ... image-jpeg