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