如何使用 Magento Soap Api 上传产品图片时指定文件名
我正在使用 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
)
)
);
I'm using the Magento Soap Api to upload pictures of products. I can't seem to specify the name I wish Magento so save the file as on the server even though I specify the "name" as per the Magento documentation.
I'm using Magento 1.2.1.2 and can't upgrade as the site uses modules that break in newer version.
Any thoughts on how I can specify the file name that Magento saves the image as?
The code I'm using:
$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
)
)
);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您无法指定文件名。唯一的解决方案是您更改 Magento 文件以允许使用此线程。为了您的方便,我提供了以下解决方案(并根据您将文件名发送为上面的
name
的事实进行了调整):修改
./app/code/ core/Mage/Catalog/Model/Product/Attribute/Media/Api.php
:您需要替换
$fileName = 'image.' 。 $this->_mimeTypes[$data['file']['mime']];
with:如果您觉得更具冒险精神,您可以扩展该类而不是更改它并覆盖
使用您自己的功能创建
函数。You can't specify the filename. The only solution would be for you change the Magento files to allow a filename as suggested in this thread. For your convenience I've included the solution below (and adapted it based on the fact that you're sending the filename as
name
above):Modify
./app/code/core/Mage/Catalog/Model/Product/Attribute/Media/Api.php
:You'll want to replace
$fileName = 'image.' . $this->_mimeTypes[$data['file']['mime']];
with:If you feel a little more adventurous, you could extend the class instead of changing it and override the
create
function with your own functionality.