shop.product.images.add не получается добавить изображение к товару. Python Есть решение

Пытаемся добавить изображение для товара, через python библиотека requests, но постоянно нам выдает одну и туже ошибку.
{
"error": "server_error",
"error_description": "No file uploaded."
}

Перепробовали разные способы,которые были на форуме для php, но все ровно никак не получается добавить изображение на сервер (работаем на Ubuntu 22.04) 
Остальные методы работают хорошо.
код на Python:
*****

header = {
       "Content-Type": "multipart/form-data",

}
data = {
    'file': base64IMG,
    'description': imageName,
}
r = requests.post(url="https://<домен>/api.php?app=shop&method=product.images.add&product_id="+str(idProdInSite)+"&access_token=....",
data=data,
headers=header)
*****
в переменой base64IMG храниться изображение закодированное в base64
imageName - наименование изображения (пример: 0ed.jpeg)
idProdInSite - id товара к которому мы добавляем  
header - передаются как заголовки
data - массив для POST запроса
Можете подсказать, что мы делаем не так и что нужно сделать, чтобы добавило изображение к товару.   

2 ответа

  • 1

    а зачем в base64? 

    передавайте содержимое изображения ('file', ('img.jpg', open('path/img.jpg', 'rb'), 'image/jpeg'))

    • +2
      Опт Оптовый Опт Оптовый 8 марта 2023 21:21 #
      Спасибо, помогли! Думал, что файлы отправляются вместе с остальными данными, оказывается у requests.post есть отдельный аргумент(files). 
      Выкладываю код для python:
      _______________________________
      data = {
         'description': imageName,
      }
      r = requests.post( url="https://<Домен>/api.php?                  app=shop&method=product.images.add&product_id="+str(idInSite)+"&access_token=....",
      data=data,
      files={'file': ('img.jpeg', open(pathIMG, 'rb'), 'image/jpeg')}
      )

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите