如何在magento 2.0中获取原始大小的图像URL

时间:2015-11-10 14:38:43

标签: magento magento2

我在Magento 2.0中相当新,我一直在努力寻找解决方案。我的第一个问题,我还没弄清楚,如何达到特定的功能?因为我注意到许多人在Magento 1中使用它们。+:

Mage::helper('cms/page')->

Mage::getModel('catalog/product_media_config')  

(例如Get original image url Magento (1.6.1.0)

但我不能在Magento 2.0中使用它们。如果在上一版本中不再提供此类使用,我可以将其作为替代方法来使用它吗?

至于另一个问题,我无法在grid.phtml(目录列表)中获得原始大小的图像。以下是获取图像的方法:

<?php 
echo $block->getImage($_item, $image)->getImageUrl(); 
echo $block->getImage($_item, $image)->getWidth(); 
echo $block->getImage($_item, $image)->getHeight();
?>

结果就是这样:

http://192.168.1.4/magento/pub/media/catalog/product/cache/1/small_image/240x300/beff4985b56e3afdbeabfc89641a4582/t/h/thumbnail_1.jpg240300

正如我上面提到的,我希望获得原始大小的图像网址而不是small_image。我希望我解释了我的问题。如果有人有任何想法,请告诉我。谢谢!

2 个答案:

答案 0 :(得分:6)

使用以下函数获取特定商店的媒体基本网址:

function getMediaBaseUrl() {

$om = \Magento\Framework\App\ObjectManager::getInstance();

$storeManager = $om->get('Magento\Store\Model\StoreManagerInterface');

$currentStore = $storeManager->getStore();
return $currentStore->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA);
}

使用getMediaBaseUrl()函数,我们可以在Magento2中找到图片网址:

echo $block->getMediaBaseUrl() .'catalog/product'. $_product->getImage();

答案 1 :(得分:3)

1)直接编写媒体目录路径的快速解决方案

echo $block->getUrl().'pub/media/catalog/product' . $_product->getImage();

2)使用StoreManager类对象获取媒体目录路径

namespace YourNamespace\YourModule\Block;
class YourModule extends \Magento\Framework\View\Element\Template
{
    protected $_storeManager;

    public function __construct(
        \Magento\Store\Model\StoreManagerInterface $storeManager,
        ...        
    )
    {
        $this->_storeManager = $storeManager;
        ...
    }

    public function getMediaBaseUrl()
    {
        return $this->_storeManager
                    ->getStore()
                    ->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA);
    }
}

然后在您的模块的模板(.phtml)文件中,您可以写为:

echo $block->getMediaBaseUrl() . $_product->getImage();