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.