php - 如何使用 Prestashop API 添加产品图片
问题描述
我正在尝试通过 Prestashop API 添加/上传产品图片,但出现服务器错误 500。代码有什么问题?还是服务器配置有问题?
PHP 脚本:
error_reporting(-1);
ini_set('display_errors', 'On');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://MY_AUTH_KEY@my-shop.com//api/images/products/24/');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_USERPWD, 'MY_AUTH_KEY:');
curl_setopt($ch, CURLOPT_POSTFIELDS, array('image' =>'@http://my-shop.com/img/my-shop-logo-1584646645.jpg;type=image/jpg'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($ch);
$curlinfo = curl_getinfo($ch);
curl_close($ch);
print_r($curlinfo);
这导致 [http_code] => 500。没有错误或任何东西。我可以访问托管服务提供商的服务器错误日志,但里面什么都没有……
该脚本基于 Prestashop 文档:https ://devdocs.prestashop.com/1.7/development/webservice/tutorials/change_product_image/
解决方案
我找到了答案 - 您无法使用 cURL 上传远程文件。它只能发送本地文件。因此,您需要下载文件,将其保存在本地,然后使用带有本地路径的 cURL。
推荐阅读
- java - 将 BoundMethodHandle 转换为反射
- c# - 要保存到数据库的 Microsoft Azure 服务总线主题工作流
- javascript - ES6 对象中的 setInterval
- java - .Net 客户端 - 使用 tls1.2 的 Java 服务器连接问题
- javascript - 编写带有 3 个条件的 if/else 语句,其中混入了 Promise
- session - 在常量文件中获取具有属性名称的会话属性
- postgresql - PostgreSQL:first_value(unique_column)OVER()有什么问题?
- python - 使用 Pandas 从不同 Excel 工作表中的一行中获取某个字符串
- c# - 在 Autofac 中注册时如何避免使用 new 两次
- powershell - 尝试使用 Powershell 同时在多个文件中搜索包含空格的多个字符串