ম্যাজেন্টো 2: কীভাবে চিত্র বা ফাইল মুছবেন


9

ম্যাজেন্টোতে ফাইল বা চিত্র কীভাবে মুছবেন 2 আমি জানি unlink('full file path');ফাইলটি মুছে ফেলা হবে তবে আমি ম্যাজেন্টো 2 উপায়ে করতে চাই । শর্ত যখন ব্যবহারকারী checkedমুছুন checkbox

উত্তর:


15

আমার অভিজ্ঞতার মতো খুব গুরুত্বপূর্ণ প্রশ্ন, মার্কেটপ্লেসের জন্য কোনও এক্সটেনশন জমা দেওয়ার সময়, এই জাতীয় পদ্ধতিটি সরাসরি ব্যবহারের ক্ষেত্রে বৈধতা ত্রুটি তৈরি করে। আমি গবেষণা করেছি এবং নিম্নলিখিত সমাধান পেয়েছি।

\Magento\Framework\Filesystem\Driver\File $fileএটি আপনার কনস্ট্রাক্টরে ইনজেক্ট করুন

(ক্লাস স্তরের ভেরিয়েবল ঘোষণা করার বিষয়টি নিশ্চিত করুন, যেমন protected $_file;)

এবং তারপরে আপনি যে পদ্ধতিগুলির অন্তর্ভুক্ত রয়েছে সেগুলিতে অ্যাক্সেস পেতে পারেন isExistsanddeleteFile

উদাহরণস্বরূপ: নির্মাণকারী মধ্যে

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);
}

আশাকরি এটা সাহায্য করবে.


তাহলে কীভাবে পরম পথ পাব?
কায়সার সাট্টি

আমাকে উত্তর সম্পাদনা করুন।
আরটি

2
এটি যাদুমন্ত্রের মত কাজ করে !!
নালিন সাভালিয়া

6

আরটির উত্তরটি ভাল, তবে আমাদের উদাহরণে সরাসরি অবজেক্টম্যানেজারটি ব্যবহার করা উচিত নয়

কারণটি এখানে " ম্যাজেন্টো 2: সরাসরি অবজেক্টম্যানেজারটি ব্যবহার বা না করা "।

আরও ভাল উদাহরণ নীচে:

<?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
    }
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.