【发布时间】:2011-04-18 22:10:28
【问题描述】:
这一定是一个如此简单的编程任务,我在网上绝对找不到任何关于它的信息。基本上,我正在尝试删除产品图片。我想从产品的媒体库中删除所有图像。对于这样一个简单的任务,我可以不费力地完成一百万行代码吗?
请注意,我已经尝试过了:
$attributes = $product->getTypeInstance()->getSetAttributes();
if (isset($attributes['media_gallery'])) {
$gallery = $attributes['media_gallery'];
$galleryData = $product->getMediaGallery();//this returns NULL
foreach($galleryData['images'] as $image){
if ($gallery->getBackend()->getImage($product, $image['file'])) {
$gallery->getBackend()->removeImage($product, $image['file']);
}
}
}
这绝对行不通。我试图在导入过程中删除图像,这样我就不会不断累积重复。任何帮助将不胜感激。
【问题讨论】:
-
stackoverflow.com/questions/5328763/… 看起来与您已经拥有的代码相同,但可能会提供一些见解,您是否确保 media/ 可访问?
-
您能否提供一些错误消息或其他信息来帮助调试它为什么不工作?
-
Boomer,我的 /media/catalog 目录在树下的模式为 777。
-
乔纳森,问题是 $product->getMediaGallery() 会返回 NULL,即使有媒体库和图像。甚至 $product->getImage() 也会返回一个图像。自 1.4 版以来,一定发生了一些变化。
-
Mage::getModel('catalog/product')->load($id)->getMediaGallery() 对我来说似乎工作正常。您是否正确加载了产品?