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