2017-07-07 14 views
0

WordPress REST APIは、コンテンツタイプ 'image/jpeg'のファイルをアップロードすることはできません。WordPress REST API:コンテンツタイプimage/jpegをアップロードできません

コンテンツタイプを空の文字列に設定すると、メディアアイテムを作成して添付ファイル(メディアライブラリとwp_content/uploadsディレクトリの両方に表示されます)をアップロードできます。しかしこれを行うと、WordPressで処理できない無効な画像が生成されます。

この

は、私が使用しているコードです:私は '画像/ JPG'、 '画像/ JPEG'、 '画像'、 'マルチパート'、 'アプリケーション' へのContent-Typeを設定

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) 

私は403を手に入れます。

他の人に示唆されているように 'application/json'に設定した場合、「無効なJSONボディが渡されました」と表示されます。

私はコンテンツタイプを省略した場合、私は、次のメッセージで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}}') 

私のファイルは(それの26KB)空ではないと私は場合の提案php.iniのエラーはおそらく適用することはできませんContent-Type = ''のファイルをアップロードすることができます。

お願いします。 Content-Typeのは、まだ「」に設定し、何とかそれであることを

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) 

注:

答えて

0

さて、私は(単にファイルではなくデータをアップロードして)適切に画像をアップロードし、回避策を持っています今すぐ動作します。

関連する問題