Skip to main content
Tweeted twitter.com/StackMagento/status/1605261762646908937
edited tags
Link
7ochem
  • 7.6k
  • 16
  • 54
  • 82
Source Link
Niraj Patel
  • 953
  • 3
  • 39
  • 84

How to create directory and text file and write content in file in media folder programmatically in Magento 2?

I tried to create directory and file and then put content in file programmatically but it does not work. Here is my code in sample.phtml

<?php $om = \Magento\Framework\App\ObjectManager::getInstance(); /** @var \Magento\Framework\Filesystem $filesystem */ $filesystem = $om->get('Magento\Framework\Filesystem'); $directoryList = $om->get('Magento\Framework\App\Filesystem\DirectoryList'); /** @var \Magento\Framework\Filesystem\Directory\WriteInterface|\Magento\Framework\Filesystem\Directory\Write $writer */ $media_url = getMediaBaseUrl(); $writer = $filesystem->getDirectoryWrite($media_url."module1/"); /** @var \Magento\Framework\Filesystem\File\WriteInterface|\Magento\Framework\Filesystem\File\Write $file */ $contents = "ddddddddddddddddddddddddddd"; $relativeFileName = "sample.txt"; $file = $writer->openFile($relativeFileName, 'w'); try { $file->lock(); try { $file->write($contents); } finally { $file->unlock(); } } finally { $file->close(); } function getMediaBaseUrl() { /** @var \Magento\Framework\ObjectManagerInterface $om */ $om = \Magento\Framework\App\ObjectManager::getInstance(); /** @var \Magento\Store\Model\StoreManagerInterface $storeManager */ $storeManager = $om->get('Magento\Store\Model\StoreManagerInterface'); /** @var \Magento\Store\Api\Data\StoreInterface|\Magento\Store\Model\Store $currentStore */ $currentStore = $storeManager->getStore(); return $currentStore->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA); } ?>