Answers:
Magento商店无法提供您提供的图像URL。我猜您希望对其进行混淆,但是这样做无法回答。
除非您要通过网络抓取另一个网站,否则我认为没有任何理由可以解构图像路径,否则,您将可以直接访问产品模型并可以直接获取此信息。
不过,使用一个真实的例子。例如
/media/catalog/product/cache/1/image/9df78eab33525d08d6e5fb8d27136e95/m/e/me-d1_2.jpg
/media/catalog/product/cache/1/image/9df78eab33525d08d6e5fb8d27136e95/m/e/me-d1_2.jpg
|___________________________|_|_____|________________________________|_|_|__________|
| | | | | | |
Cache Directory | | | | | |
Mage/Catalog/Model/Product/Media/Config.php | | | |
getBaseMediaPath() | | | | | |
| | | | | |
| | | | | |
Store ID | | | |
Mage::app()->getStore()->getId() | | |
| | | | |
| | | | |
Subdirectory | | | |
Mage/Catalog/Model/Product/Image.php | | |
getDestinationSubdir() | | | |
| | | |
| | | |
MD5 of Image Params | | |
See below | | |
Mage/Catalog/Model/Product/Image.php
Line +324 | | |
| | |
| | |
First letter of Image Name
| |
| |
Second letter of Image Name
|
|
Original Image Name
如果通过Magento管理员上传,则原始图片位于,
因此,获取原始URL非常简单,只需删除缓存目录路径和哈希即可。
就是 去掉cache/1/image/9df78eab33525d08d6e5fb8d27136e95/
所以
/media/catalog/product/cache/1/image/9df78eab33525d08d6e5fb8d27136e95/m/e/me-d1_2.jpg
成为
/media/catalog/product/m/e/me-d1_2.jpg
如果通过数据流/导入上传,则原始图像位于
/ media / import
但除此之外,还会有猜测。但是,人们想格式化要上传的DIR确实取决于他们,并且图像所在的子目录确实不相关-因为它们在上传时提供了图像的相对路径。
($this->_keepAspectRatio ? '' : 'non') . 'proportional',
($this->_keepFrame ? '' : 'no') . 'frame',
($this->_keepTransparency ? '' : 'no') . 'transparency',
($this->_constrainOnly ? 'do' : 'not') . 'constrainonly',
$this->_rgbToString($this->_backgroundColor),
'angle' . $this->_angle,
'quality' . $this->_quality,
可选参数,如果有水印
$this->getWatermarkFile(),
$this->getWatermarkImageOpacity(),
$this->getWatermarkPosition(),
$this->getWatermarkWidth(),
$this->getWatermarkHeigth()
md5(implode('_', $miscParams));
例如,使用默认值
md5('non_no_no_not_ffffff_0_90')
该md5
哈希可能是在整个网站相同的-每一个形象,但你需要弄清楚用于产生它的价值。您可以相对轻松地对其进行暴力破解。
这是哈希的默认Magento值
9df78eab33525d08d6e5fb8d27136e95
简短答案-不。没有任何方法可以根据缓存图像URL返回基本图像。但是,如果删除缓存文件夹和哈希,则应该能够知道URL是什么,例如:
http://www.mysite.com/media/catalog/product/cache/1/image/109x298/9df78eab33525d08d6e5fb8d27136e95/u/t/uti001_2.jpg
删除乘积后的所有内容,直到前缀trie(在这种情况下,请删除cache/1/image/109x298/9df78eab33525d08d6e5fb8d27136e95/
:
http://www.mysite.com/media/catalog/product/u/t/uti001_2.jpg
不过,也许对此更好的处理方法是使用对象模型:
$product = Mage::getModel('catalog/product')->load(42);
echo $product->getImage();
echo $product->getThumbnail();