When we are working on image or file upload functionality from frontend of Magento, we also allowing customer to upload another or update the image so that time we also have to delete previously upload the image or file as we can left those uploaded image or file left on server.
Following code will help you with that logic.
<?php
namespace Codedecorator\Learn\Controller\Index;
use Magento\Backend\App\Action;
use Magento\Backend\App\Action\Context;
use Magento\Framework\Filesystem\Driver\File;
use Magento\Framework\Filesystem;
use Magento\Framework\App\Filesystem\DirectoryList;
class Delete extends Action
{
protected $_filesystem;
protected $_file;
public function __construct(
Context $context,
Filesystem $_filesystem,
File $file
)
{
parent::__construct($context);
$this->_filesystem = $_filesystem;
$this->_file = $file;
}
public function execute()
{
........
$fileName = "file or image name";// 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);
}
......
}
}
Let’s us know if you need any issue or any query.
Happy coding guys!