Magento以编程方式删除产品图片
|
这必须是一个如此简单的编程任务,我绝对无法在网上找到有关它的任何信息。基本上,我正在尝试删除产品图片。我想删除产品媒体库中的所有图像。我可以不花一百万行代码来完成这个简单的任务吗?
请注意,我已经尝试过:
$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\']);
}
}
}
这绝对是行不通的。我正尝试在导入过程中删除图像,以免重复出现。任何帮助将不胜感激。
没有找到相关结果
已邀请:
14 个回复
土投
这是最终使我直觉的链接:http://www.magentocommerce.com/wiki/doc/webservices-api/api/catalog_product_attribute_media 太糟糕了,它不像$ product-> getImages()那样简单,是吗?
磐剩
使用Davids Tay回答的代码,我得到了错误: 致命错误:消息为'SQLSTATE [23000]的未捕获异常'Mage_Eav_Model_Entity_Attribute_Exception':违反完整性约束:1452无法添加或更新子行:外键约束失败(
.
,CONSTRAINT
外键(
)参考catalog_prod) '
盛梯獭八搽
补蹲农界维
媒体库对象取决于产品的创建方式,如果:
如果满足以下条件,则媒体库将为空:
则媒体库是对象,您可以使用该对象从数据库删除图像。 要从文件系统中删除图像,您必须添加以下代码:
但是在这种情况下,如果您要更改图像并将其命名为先前的图像(将image1.png替换为image1.png),则会出现浏览器缓存问题。 您也可以尝试加载产品的媒体库:
磨标烫徽啪
然后,通过删除/ media / catalog / product目录中的所有映像文件来进行后续操作。 我确实在寻找一种以编程方式自己执行此操作的方法,但发现此方法效率更高,并且没有副作用。
薄扩络拜
柑恫祟
babsoft
鲁釜头
表,因为magento会将所有产品图像数据保存在那些表中。 然后从管理员的索引管理中为设置的图像黑色索引。 然后删除图像
,然后转到
的magento目录,并从此文件夹中删除所有文件。 另一个过程: 安迪·辛普森(Andy Simpson),您需要一个脚本,系统中的脚本为
,
。 步骤1:在
中创建
,其中包括
。
第二步:设置“ 27”管理员并设置开发人员模式
第三步:得到ѭ29,并创建一个循环,一个接一个地获得一个产品
第4步:使用以下代码将商品图片一幅化并删除一幅图片:
完整代码:
襄挟款籍
爆山
犁攀富
为什么17? 您重复的实验如下: /0/0/000116810609_1.jpg /0/0/000116810609_2.jpg /0/0/000116810609_3.jpg /0/0/000116810609_4.jpg
/ 0/0/000116810609 / 0/0/000116810609 / 0/0/000116810609 / 0/0/000116810609 不,它们是重复的;)
响摔衅幸
旅牢斯讲
上面的代码在Magento 2.3中进行了测试,并且还从文件系统中删除了图像。您可以使用它来删除或更改条目(更改位置,图像角色等) 要查看每个imageEntry,可以使用$ imageEntry-> getData()访问其数据。