Saltar al contenido

Magento 2: cómo eliminar una imagen o un archivo

Este team de redactores ha pasado mucho tiempo buscando para dar respuesta a tu pregunta, te dejamos la resolución por esto deseamos servirte de gran apoyo.

Solución:

Pregunta muy importante ya que en mi experiencia, al enviar una extensión para el mercado, la validación generó errores con respecto al uso de dicho método directamente. Investigué y encontré la siguiente solución.

inyectar esto MagentoFrameworkFilesystemDriverFile $file en tu constructor

(asegúrese de declarar la variable de nivel de clase, es decir, protected $_file;)

y luego puede tener acceso a los métodos que incluyen: isExists y deleteFile

por ejemplo: en constructor

public function __construct(MagentoBackendAppActionContext $context, 
            MagentoFrameworkFilesystemDriverFile $file)

        $this->_file = $file;
        parent::__construct($context);

y luego en el método en el que intenta eliminar un archivo:

$mediaDirectory = $this->_objectManager->get('MagentoFrameworkFilesystem')->getDirectoryRead(MagentoFrameworkAppFilesystemDirectoryList::MEDIA);
$mediaRootDir = $mediaDirectory->getAbsolutePath();

if ($this->_file->isExists($mediaRootDir . $fileName))  

    $this->_file->deleteFile($mediaRootDir . $fileName);

espero que esto ayude.

La respuesta de RT es buena, pero nosotros no debe utilizar el Gestor de objetos directamente en el ejemplo.

La razón está aquí “Magento 2: usar o no usar ObjectManager directamente”.

Entonces, un mejor ejemplo está a continuación:

_filesystem = $_filesystem;
        $this->_file = $file;
    

    public function execute()
    
        $fileName = "imageName";// replace this with some codes to get the $fileName
        $mediaRootDir = $this->_filesystem->getDirectoryRead(DirectoryList::MEDIA)->getAbsolutePath();
        if ($this->_file->isExists($mediaRootDir . $fileName)) 
            $this->_file->deleteFile($mediaRootDir . $fileName);
        
        // other logic codes
    

valoraciones y reseñas

Si te mola el tema, tienes la libertad de dejar una crónica acerca de qué le añadirías a este post.

¡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 *