So löschen Sie Dateien oder Bilder in Magento 2. Ich weiß, unlink('full file path');
dass die Datei mit Magento 2 gelöscht wird . Bedingung beim Benutzer checked
das Löschen checkbox
.
9
Sehr wichtige Frage, da meiner Erfahrung nach bei der Einreichung einer Erweiterung für den Markt die Validierung Fehler bei der direkten Verwendung dieser Methode verursachte. Ich habe folgende Lösung recherchiert und gefunden.
Injizieren Sie dies \Magento\Framework\Filesystem\Driver\File $file
in Ihren Konstruktor
(Stellen Sie sicher, dass Sie die Variable auf Klassenebene deklarieren, dh protected $_file;
)
und dann können Sie auf die Methoden zugreifen, die Folgendes umfassen: isExists
unddeleteFile
Zum Beispiel: im Konstruktor
public function __construct(\Magento\Backend\App\Action\Context $context,
\Magento\Framework\Filesystem\Driver\File $file){
$this->_file = $file;
parent::__construct($context);
}
und dann in der Methode, in der Sie versuchen, eine Datei zu löschen:
$mediaDirectory = $this->_objectManager->get('Magento\Framework\Filesystem')->getDirectoryRead(\Magento\Framework\App\Filesystem\DirectoryList::MEDIA);
$mediaRootDir = $mediaDirectory->getAbsolutePath();
if ($this->_file->isExists($mediaRootDir . $fileName)) {
$this->_file->deleteFile($mediaRootDir . $fileName);
}
hoffe das hilft.
Die Antwort von RT ist gut, aber wir sollten den ObjectManager nicht direkt im Beispiel verwenden.
Der Grund ist hier " Magento 2: den ObjectManager direkt verwenden oder nicht verwenden ".
Ein besseres Beispiel finden Sie unten:
quelle