Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Public Member Functions | Data Fields
FileProcessor Class Reference

Public Member Functions

 __construct (\Magento\Framework\Filesystem $filesystem, \Magento\MediaStorage\Model\File\UploaderFactory $uploaderFactory, \Magento\Framework\UrlInterface $urlBuilder, \Magento\Framework\Url\EncoderInterface $urlEncoder, $entityTypeCode, \Magento\Framework\File\Mime $mime, array $allowedExtensions=[])
 
 getBase64EncodedData ($fileName)
 
 getStat ($fileName)
 
 getMimeType ($fileName)
 
 isExist ($fileName)
 
 getViewUrl ($filePath, $type)
 
 moveTemporaryFile ($fileName)
 
 removeUploadedFile ($fileName)
 

Data Fields

const TMP_DIR = 'tmp'
 

Detailed Description

Definition at line 8 of file FileProcessor.php.

Constructor & Destructor Documentation

◆ __construct()

__construct ( \Magento\Framework\Filesystem  $filesystem,
\Magento\MediaStorage\Model\File\UploaderFactory  $uploaderFactory,
\Magento\Framework\UrlInterface  $urlBuilder,
\Magento\Framework\Url\EncoderInterface  $urlEncoder,
  $entityTypeCode,
\Magento\Framework\File\Mime  $mime,
array  $allowedExtensions = [] 
)
Parameters
\Magento\Framework\Filesystem$filesystem
\Magento\MediaStorage\Model\File\UploaderFactory$uploaderFactory
\Magento\Framework\UrlInterface$urlBuilder
\Magento\Framework\Url\EncoderInterface$urlEncoder
string$entityTypeCode
\Magento\Framework\File\Mime$mime
array$allowedExtensions

Definition at line 59 of file FileProcessor.php.

67  {
68  $this->mediaDirectory = $filesystem->getDirectoryWrite(\Magento\Framework\App\Filesystem\DirectoryList::MEDIA);
69  $this->uploaderFactory = $uploaderFactory;
70  $this->urlBuilder = $urlBuilder;
71  $this->urlEncoder = $urlEncoder;
72  $this->entityTypeCode = $entityTypeCode;
73  $this->mime = $mime;
74  $this->allowedExtensions = $allowedExtensions;
75  }
$filesystem

Member Function Documentation

◆ getBase64EncodedData()

getBase64EncodedData (   $fileName)

Retrieve base64 encoded file content

Parameters
string$fileName
Returns
string

Definition at line 83 of file FileProcessor.php.

84  {
85  $filePath = $this->entityTypeCode . '/' . ltrim($fileName, '/');
86 
87  $fileContent = $this->mediaDirectory->readFile($filePath);
88 
89  $encodedContent = base64_encode($fileContent);
90  return $encodedContent;
91  }
$fileName
Definition: translate.phtml:15

◆ getMimeType()

getMimeType (   $fileName)

Retrieve MIME type of requested file

Parameters
string$fileName
Returns
string

Definition at line 113 of file FileProcessor.php.

114  {
115  $filePath = $this->entityTypeCode . '/' . ltrim($fileName, '/');
116  $absoluteFilePath = $this->mediaDirectory->getAbsolutePath($filePath);
117 
118  $result = $this->mime->getMimeType($absoluteFilePath);
119  return $result;
120  }
$fileName
Definition: translate.phtml:15

◆ getStat()

getStat (   $fileName)

Get file statistics data

Parameters
string$fileName
Returns
array

Definition at line 99 of file FileProcessor.php.

100  {
101  $filePath = $this->entityTypeCode . '/' . ltrim($fileName, '/');
102 
103  $result = $this->mediaDirectory->stat($filePath);
104  return $result;
105  }
$fileName
Definition: translate.phtml:15

◆ getViewUrl()

getViewUrl (   $filePath,
  $type 
)

Retrieve customer/index/viewfile action URL

Parameters
string$filePath
string$type
Returns
string

Definition at line 143 of file FileProcessor.php.

144  {
145  $viewUrl = '';
146 
147  if ($this->entityTypeCode == \Magento\Customer\Api\AddressMetadataInterface::ENTITY_TYPE_ADDRESS) {
148  $filePath = $this->entityTypeCode . '/' . ltrim($filePath, '/');
149  $viewUrl = $this->urlBuilder->getBaseUrl(['_type' => \Magento\Framework\UrlInterface::URL_TYPE_MEDIA])
150  . $this->mediaDirectory->getRelativePath($filePath);
151  }
152 
153  if ($this->entityTypeCode == \Magento\Customer\Api\CustomerMetadataInterface::ENTITY_TYPE_CUSTOMER) {
154  $viewUrl = $this->urlBuilder->getUrl(
155  'customer/index/viewfile',
156  [$type => $this->urlEncoder->encode(ltrim($filePath, '/'))]
157  );
158  }
159 
160  return $viewUrl;
161  }
$type
Definition: item.phtml:13

◆ isExist()

isExist (   $fileName)

Check if the file exists

Parameters
string$fileName
Returns
bool

Definition at line 128 of file FileProcessor.php.

129  {
130  $filePath = $this->entityTypeCode . '/' . ltrim($fileName, '/');
131 
132  $result = $this->mediaDirectory->isExist($filePath);
133  return $result;
134  }
$fileName
Definition: translate.phtml:15

◆ moveTemporaryFile()

moveTemporaryFile (   $fileName)

Move file from temporary directory into base directory

Parameters
string$fileName
Returns
string
Exceptions

Definition at line 201 of file FileProcessor.php.

202  {
203  $fileName = ltrim($fileName, '/');
204 
206  $destinationPath = $this->entityTypeCode . $dispersionPath;
207 
208  if (!$this->mediaDirectory->create($destinationPath)) {
209  throw new \Magento\Framework\Exception\LocalizedException(
210  __('Unable to create directory %1.', $destinationPath)
211  );
212  }
213 
214  if (!$this->mediaDirectory->isWritable($destinationPath)) {
215  throw new \Magento\Framework\Exception\LocalizedException(
216  __('Destination folder is not writable or does not exists.')
217  );
218  }
219 
221  $this->mediaDirectory->getAbsolutePath($destinationPath) . '/' . $fileName
222  );
223 
224  try {
225  $this->mediaDirectory->renameFile(
226  $this->entityTypeCode . '/' . self::TMP_DIR . '/' . $fileName,
227  $destinationPath . '/' . $destinationFileName
228  );
229  } catch (\Exception $e) {
230  throw new \Magento\Framework\Exception\LocalizedException(
231  __('Something went wrong while saving the file.')
232  );
233  }
234 
235  $fileName = $dispersionPath . '/' . $fileName;
236  return $fileName;
237  }
__()
Definition: __.php:13
$fileName
Definition: translate.phtml:15
static getNewFileName($destinationFile)
Definition: Uploader.php:605
static getDispersionPath($fileName)
Definition: Uploader.php:642

◆ removeUploadedFile()

removeUploadedFile (   $fileName)

Remove uploaded file

Parameters
string$fileName
Returns
bool

Definition at line 245 of file FileProcessor.php.

246  {
247  $filePath = $this->entityTypeCode . '/' . ltrim($fileName, '/');
248 
249  $result = $this->mediaDirectory->delete($filePath);
250  return $result;
251  }
$fileName
Definition: translate.phtml:15

Field Documentation

◆ TMP_DIR

const TMP_DIR = 'tmp'

Temporary directory name

Definition at line 13 of file FileProcessor.php.


The documentation for this class was generated from the following file: