Saltar al contenido

¿Cómo obtener la ruta del directorio multimedia en un archivo phtml en magento 2?

Solución:

En lugar de usar directo object manager, úsalo como

use MagentoFrameworkAppFilesystemDirectoryList;

protected $_filesystem;

public function __construct(
    MagentoFrameworkFilesystem $filesystem
)
{
    $this->_filesystem = $filesystem;
}

Ahora puede la ruta de los medios mediante,

$mediapath = $this->_filesystem->getDirectoryRead(DirectoryList::MEDIA)->getAbsolutePath();

EDITAR

Si desea utilizar un Administrador de objetos, entonces puedes usar esto (no recomendado)

$objectManager = MagentoFrameworkAppObjectManager::getInstance();

$fileSystem = $objectManager->create('MagentoFrameworkFilesystem');
$mediaPath = $fileSystem->getDirectoryRead(MagentoFrameworkAppFilesystemDirectoryList::MEDIA)->getAbsolutePath();
echo $mediaPath;
exit;

Primero deberá inyectar la clase DirectoryList en su constructor de Magento 2:

public function __construct(MagentoFrameworkViewElementTemplateContext $context, MagentoFrameworkAppFilesystemDirectoryList $directory_list, array $data = []) {
     parent::__construct($context, $data);
     $this->directory_list = $directory_list;  
 }

Después de eso, tendrá acceso a los métodos DirectoryList para recuperar varias rutas. Por ejemplo, para obtener la carpeta de medios puede usar:

$this->directory_list->getPath('media');

Otros posibles usos son:

/* Get app folder */
$this->directory_list->getPath('app');

/* Get configuration folder */
$this->directory_list->getPath('etc');

/* Get libraries or third-party components folder */
$this->directory_list->getPath('lib_internal');

/* Get libraries/components that need to be accessible publicly through web-server folder */
$this->directory_list->getPath('lib_web');

/* Get public folder */
$this->directory_list->getPath('pub');

/* Get static folder */
$this->directory_list->getPath('static');

/* Get var folder */
$this->directory_list->getPath('var');

/* Get temporary files folder */
$this->directory_list->getPath('tmp');

/* Get file system caching directory (if file system caching is used) */
$this->directory_list->getPath('cache');

/* Get logs of system messages and errors */
$this->directory_list->getPath('log');

/* Get file system session directory (if file system session storage is used) */
$this->directory_list->getPath('session');

/* Get directory for Setup application*/
$this->directory_list->getPath('setup');

/* Get Dependency injection related file directory */
$this->directory_list->getPath('di');

/* Relative directory key for generated code*/
$this->directory_list->getPath('generation');

/* Temporary directory for uploading files by end-user */
$this->directory_list->getPath('upload');

/* Directory to store composer related files (config, cache etc.) in case if composer runs by Magento Application */
$this->directory_list->getPath('composer_home');

/* A suffix for temporary materialization directory where pre-processed files will be written (if necessary) */
$this->directory_list->getPath('view_preprocessed');

/* Get template minification dir */
$this->directory_list->getPath('html');

Utilice el siguiente código para obtener la ruta de los medios en el archivo .phtml.

$this->getUrl('pub/media');

Por Objectmanager

$objectManager = MagentoFrameworkAppObjectManager::getInstance();
echo $objectManager->get('MagentoStoreModelStoreManagerInterface')
                    ->getStore()
                    ->getBaseUrl(MagentoFrameworkUrlInterface::URL_TYPE_MEDIA);
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *