मैगेंटो में फाइल या इमेज को कैसे डिलीट करें 2. मुझे पता है unlink('full file path');
कि फाइल को डिलीट करने से मैं डिलीट हो जाऊंगा लेकिन मैं 2 तरीके से मैगेंटो करना चाहता हूं । हालत जब उपयोगकर्ता checked
को हटा दें checkbox
।
मैगेंटो में फाइल या इमेज को कैसे डिलीट करें 2. मुझे पता है unlink('full file path');
कि फाइल को डिलीट करने से मैं डिलीट हो जाऊंगा लेकिन मैं 2 तरीके से मैगेंटो करना चाहता हूं । हालत जब उपयोगकर्ता checked
को हटा दें checkbox
।
जवाबों:
मेरे अनुभव के अनुसार बहुत महत्वपूर्ण सवाल है, जब बाज़ार के लिए एक एक्सटेंशन सबमिट करते हैं, तो सत्यापन ने सीधे इस तरह की विधि का उपयोग करने के बारे में त्रुटियों को उत्पन्न किया। मैंने शोध किया है और निम्नलिखित समाधान पाया है।
इसे \Magento\Framework\Filesystem\Driver\File $file
अपने कंस्ट्रक्टर में इंजेक्ट करें
(कक्षा स्तर चर घोषित करने के लिए सुनिश्चित करें protected $_file;
) ,
और फिर आप उन विधियों तक पहुंच सकते हैं जिनमें शामिल हैं: isExists
औरdeleteFile
उदाहरण के लिए: कंस्ट्रक्टर में
public function __construct(\Magento\Backend\App\Action\Context $context,
\Magento\Framework\Filesystem\Driver\File $file){
$this->_file = $file;
parent::__construct($context);
}
और फिर उस विधि में जहां आप एक फ़ाइल को हटाने की कोशिश कर रहे हैं:
$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);
}
उम्मीद है की यह मदद करेगा।
RT का उत्तर अच्छा है, लेकिन हमें ObjectManager का उपयोग सीधे उदाहरण में नहीं करना चाहिए ।
इसका कारण यहाँ है " Magento 2: का उपयोग करने या नहीं का उपयोग करने के लिए ObjectManager सीधे "।
तो बेहतर उदाहरण नीचे है:
<?php
namespace YourNamespace;
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 = "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
}
}