Files
stemcell/app/code/Magezon/Core/Model/FileInfo.php
T
2026-09-15 10:26:34 +08:00

138 lines
3.2 KiB
PHP
Executable File

<?php
/**
* Magezon
*
* This source file is subject to the Magezon Software License, which is available at https://www.magezon.com/license
* Do not edit or add to this file if you wish to upgrade the to newer versions in the future.
* If you wish to customize this module for your needs.
* Please refer to https://www.magezon.com for more information.
*
* @category Magezon
* @package Magezon_Core
* @copyright Copyright (C) 2019 Magezon (https://www.magezon.com)
*/
namespace Magezon\Core\Model;
use Magento\Framework\App\Filesystem\DirectoryList;
use Magento\Framework\File\Mime;
use Magento\Framework\Filesystem;
use Magento\Framework\Filesystem\Directory\WriteInterface;
class FileInfo
{
/**
* Path in /pub/media directory
*/
const ENTITY_MEDIA_PATH = '';
/**
* @var Filesystem
*/
private $filesystem;
/**
* @var Mime
*/
private $mime;
/**
* @var WriteInterface
*/
private $mediaDirectory;
/**
* @var \Magento\Store\Model\StoreManagerInterface
*/
protected $_storeManager;
/**
* @param Filesystem $filesystem
* @param Mime $mime
*/
public function __construct(
\Magento\Store\Model\StoreManagerInterface $storeManager,
Filesystem $filesystem,
Mime $mime
) {
$this->_storeManager = $storeManager;
$this->filesystem = $filesystem;
$this->mime = $mime;
}
/**
* Get WriteInterface instance
*
* @return WriteInterface
*/
private function getMediaDirectory()
{
if ($this->mediaDirectory === null) {
$this->mediaDirectory = $this->filesystem->getDirectoryWrite(DirectoryList::MEDIA);
}
return $this->mediaDirectory;
}
/**
* Retrieve MIME type of requested file
*
* @param string $fileName
* @return string
*/
public function getMimeType($fileName)
{
$filePath = self::ENTITY_MEDIA_PATH . '/' . ltrim($fileName, '/');
$absoluteFilePath = $this->getMediaDirectory()->getAbsolutePath($filePath);
$result = $this->mime->getMimeType($absoluteFilePath);
return $result;
}
/**
* Get file statistics data
*
* @param string $fileName
* @return array
*/
public function getStat($fileName)
{
$filePath = self::ENTITY_MEDIA_PATH . '/' . ltrim($fileName, '/');
$result = $this->getMediaDirectory()->stat($filePath);
return $result;
}
/**
* Check if the file exists
*
* @param string $fileName
* @return bool
*/
public function isExist($fileName)
{
$filePath = self::ENTITY_MEDIA_PATH . '/' . ltrim($fileName, '/');
$result = $this->getMediaDirectory()->isExist($filePath);
return $result;
}
/**
* Get file url
*
* @param string $fileName
* @return string
*/
public function getFileUrl($fileName)
{
$url = $this->getMediaUrl() . $fileName;
return $url;
}
public function getMediaUrl()
{
return $this->_storeManager->getStore()->getBaseUrl(
\Magento\Framework\UrlInterface::URL_TYPE_MEDIA
);
}
}