回答:
指定した画像URLは、Magentoストアでは使用できません。あなたはそれを難読化することを望んでいたと思いますが、そうすることで答えることが不可能になりました。
別のWebサイトをWebスクレイピングしている場合を除き、画像パスを分解する理由は考えられません。
それにもかかわらず、実際の例を使用します。例えば
/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
dataflow / importを介してアップロードされた場合、元の画像は
/ 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
帰属:sonassi.com
短い答え-いいえ。キャッシュイメージのURLに基づいてベースイメージを返す方法はありません。ただし、キャッシュフォルダーとハッシュを削除すると、URLが何であるかを直観できるはずです。例:
http://www.mysite.com/media/catalog/product/cache/1/image/109x298/9df78eab33525d08d6e5fb8d27136e95/u/t/uti001_2.jpg
プレフィックストライまで製品の後のすべてを削除します(この場合、削除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();
これは動作します
$r = explode('/' ,$imagesCachePath);
unset($r[6]);
unset($r[7]);
unset($r[8]);
unset($r[9]);
$r = implode('/',$r);