Python requests image upload fail to drf

    import json
    import requests

    user_f = open('categories.json',)
    users = json.load(user_f)


    media_api = 'http://127.0.0.1:8000/api/categories/'

    files=[
        ('category_image', ("Traditional-Art.png", open("Traditional-Art.png",'rb'),'image/jpeg'))
    ]

    json = {
        "category_name": "cat",
        "category_description": "desc",
        "user": 16
    }

    headers = {
                "Accept": 'application/json, text/plain, */*',
                "enctype":"multipart/form-data"
            }

    response = requests.request("POST", media_api, headers=headers, data=json, files=files)
    print(response.json())

Здесь я пытаюсь загрузить изображение в django rest-framework и получаю следующую ошибку

`{u'category_image': [u'Upload a valid image. The file you uploaded was either not an image or a corrupted image.']}`

Это работает, когда изображение имеет формат jpg, но не работает в png. Я что-то упустил или мне нужно что-то изменить?

Пожалуйста, посмотрите

То, что вы сделали неправильно, либо вы пытаетесь отправить данные как json или как форму, сделайте что-то вроде этого, это может помочь вам.

import requests
from requests_toolbelt.multipart.encoder import MultipartEncoder

multipart_data = MultipartEncoder(
      fields={
           # a file upload field
           'file': ('file.zip', open('file.zip', 'rb'), 'text/plain')
           # plain text fields
           'field0': 'value0', 
           'field1': 'value1',
         }
 )

 response = requests.post('http://httpbin.org/post', 
              data=multipart_data,
              headers={'Content-Type': multipart_data.content_type})
Вернуться на верх