You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过PrestaShop Webservice API上传商品图片报错求助

调试PrestaShop Webservice API商品图片上传问题

错误原因分析

你的代码存在三个关键问题导致服务器无法识别图片参数:

  1. 手动指定Content-Type:手动设置multipart/form-data会阻止requests自动添加表单分隔符(boundary),服务器无法正确解析文件字段
  2. Authorization格式错误:Basic + ASDJJKHNKJASNDIAASDASD中的+是多余的,正确格式应为Basic [Base64编码的凭证]
  3. 冗余参数:URL已经指定了商品ID(/products/116),payload中的id_product参数无需重复提交

修正后的代码

import requests

url = "http://127.0.0.1/prestashop/api/images/products/116"

files = [
    ('image', ('20110101jpg-1.jpeg', open('/home/admin/Downloads/20110101jpg-1.jpeg', 'rb'), 'image/jpeg'))
]
headers = {
    'Authorization': 'Basic ASDJJKHNKJASNDIAASDASD',  # 移除多余的+
    'Cookie': 'PHPSESSID=6nhmk9jtmlta9r11f40g725cjk; PrestaShop-1c321b2b9a97944d3662932a96e7184f=def50200e83bedeaa690e780a78a450a6688a6aaafe245f6be864dcbe23aef85cfe6c178b21a25e652b8fac90b2af0a737d5668ba741a5faf523f6477121e4469f9928becfef69065d1afaccf437ea5b1900ec10c2799e13b05b3c9e1de2bcee3556af19b5d365d9d2c8f6dc7de5b98ed799f2a178a508fb2eede2cf4c49e5189988c04ed94b1a6ed9a6e7ebe9a7f8845341ccc9612ba27960d1bd28cf4299f32c7562420cb6399af72ee7f65c63d0557110daf03c586ad0b762d3920bde0a1d7d973ca4d1969ab836b038c64656753d89a3b5d7fb14510f9ab4e735cd740e192a1a09d79901263a08d3cf2d046e775bfcf27d84'
}

response = requests.post(url, headers=headers, files=files)

print(response.text)

额外注意事项

  • 确认Authorization头中的Base64字符串是PrestaShop用户名:API密钥的Base64编码结果
  • 检查图片文件路径是否正确,当前用户对文件有可读权限
  • 如果需要设置图片为商品封面或调整显示位置,可添加data参数,示例:
    data = {'cover': '1', 'position': '1'}
    response = requests.post(url, headers=headers, files=files, data=data)
    

内容的提问来源于stack exchange,提问作者Đức Anh Lê Bá

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 12:33:16