138 lines
3.2 KiB
PHP
Executable File
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
|
|
);
|
|
}
|
|
}
|