【问题标题】:How To Specify Filename When Uploading Product Picture Using The Magento Soap Api使用 Magento Soap Api 上传产品图片时如何指定文件名
【发布时间】:2011-10-01 13:17:42
【问题描述】:

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

【问题讨论】:

    标签: php api magento soap


    【解决方案1】:

    您不能指定文件名。唯一的解决方案是更改 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 函数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-06
      • 1970-01-01
      • 2015-06-12
      • 1970-01-01
      • 2013-02-10
      • 1970-01-01
      • 2016-09-01
      相关资源
      最近更新 更多