2011-07-08 41 views
2

我正在使用Magento Soap Api上传产品图片。我似乎无法指定我希望Magento的名称,以便像在服务器上那样保存文件,即使我按照Magento文档指定了“名称”。如何使用Magento Soap Api上传产品图片时指定文件名

我正在使用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 
    ) 
    ) 
); 

回答

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功能,用自己的功能。

+0

谢谢!这工作完美。 – indexdotphp