Magento - 如何以编程方式设置媒体库图像?

时间:2012-02-14 14:39:11

标签: image magento product

我尝试设置一个新的magento产品图片,例如 che_3.png with:

$visibility = array (
   'thumbnail',
   'small_image',
   'image'
);
$product->addImageToMediaGallery( $file, $visibility, true, false);

产品图片从

移开

临时目录: /media/tmp/catalog/product/upload/sessionid/original/che_3.png

目的地目录: /media/catalog/product/c/h/che_3.png

现在,如果我想调用图像文件路径 - 由magento保存 - 是错误的。 media_gallery对象如下所示:

[media_gallery] => Array
        (
            [images] => Array
                (
                    [0] => Array
                        (
                            [value_id] => 89
                            [file] => /c/h/che_3_2_1.png //che_3.svg is already in here
                            [label] => 
                            [position] => 1
                            [disabled] => 0
                            [label_default] => 
                            [position_default] => 1
                            [disabled_default] => 0
                        )

                    [1] => Array // why this second item?
                        (
                            [value_id] => 88
                            [file] => /c/h/che_3_2.png
                            [label] => 
                            [position] => 1
                            [disabled] => 0
                            [label_default] => 
                            [position_default] => 1
                            [disabled_default] => 0
                        )

                )

            [values] => Array
                (
                )

        )

正如您所看到的,文件名由magento扩展,并且还有两个项目被添加到media_gallery。

我的问题是我如何分别重置产品内部计数器,以便magento正在使用原始文件?

提前致谢。

1 个答案:

答案 0 :(得分:2)

问题已解决:我已使用$product->save()两次保存了产品,似乎$product->addImageToMediaGallery()也执行了两次。