我正在使用Magento Soap Api上传产品图片。我似乎无法指定我希望Magento的名称,因此即使我根据Magento文档指定“名称”,也要将文件保存在服务器上。
我正在使用Magento 1.2.1.2并且无法升级,因为该网站使用的是在较新版本中断的模块。
关于如何指定Magento将图像保存为文件名的任何想法?
我正在使用的代码:
$client->call(
$session_id,
'catalog_product_attribute_media.create',
array(
$sku,
array(
'file' => array(
'content' => base64_encode(file_get_contents($filename)),
'mime' => $imageinfo['mime'],
'name' => $filename
),
'label' => $description,
'types' => array(
'image',
'small_image',
'thumbnail'
),
'exclude' => FALSE
)
)
);
答案 0 :(得分:2)
您无法指定文件名。唯一的解决方案是更改Magento文件以允许this thread中建议的文件名。为了您的方便,我已经在下面提供了解决方案(并根据您将文件名发送到上面name
的事实进行了调整):
修改./app/code/core/Mage/Catalog/Model/Product/Attribute/Media/Api.php
:
您需要将$fileName = 'image.' . $this->_mimeTypes[$data['file']['mime']];
替换为:
if ( ! empty($data['file']['name']) )
$fileName = $data['file']['name'];
else
$fileName = 'image.' . $this->_mimeTypes[$data['file']['mime']];
如果您觉得有点冒险,可以扩展课程而不是更改它,并使用您自己的功能覆盖create
功能。