जवाबों:
छवि URL जो आपने दिया है वह Magento स्टोर के साथ होना असंभव है। मुझे लगता है कि आप चाहते थे कि इसे बाधित किया जाए, लेकिन ऐसा करने में इसका जवाब देना असंभव हो गया है।
जब तक आप किसी अन्य वेबसाइट को वेब-स्क्रैप नहीं कर रहे हैं, तब तक मैं इमेज पथ को डी-कंस्ट्रक्ट करने के किसी भी कारण के बारे में नहीं सोच सकता, अन्यथा, आपके पास उत्पाद मॉडल तक सीधी पहुंच होगी और यह जानकारी सीधे प्राप्त कर सकता है।
फिर भी, एक वास्तविक उदाहरण का उपयोग करते हुए। उदाहरण के लिए
/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
यदि डेटाफ़्लो / आयात के माध्यम से अपलोड किया जाता है , तो मूल छवि स्थित होती है
/ मीडिया / आयात
लेकिन इससे परे अनुमान होगा। हालाँकि, लोग अपने अपलोड डीआईआर को आयात करने के लिए प्रारूपित करना चाहते हैं, यह वास्तव में उनके ऊपर है और उपनिर्देशिकाएं वास्तव में प्रासंगिक नहीं हैं - क्योंकि वे अपलोड करते समय छवि के सापेक्ष पथ प्रदान करते हैं।
($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
उत्पाद के बाद सब कुछ निकालें जब तक उपसर्ग 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();
यह काम
$r = explode('/' ,$imagesCachePath);
unset($r[6]);
unset($r[7]);
unset($r[8]);
unset($r[9]);
$r = implode('/',$r);