Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Uploader.php
Go to the documentation of this file.
1 <?php
8 
16 {
22  protected $_skipDbProcessing = false;
23 
29  protected $_coreFileStorage = null;
30 
36  protected $_coreFileStorageDb = null;
37 
41  protected $_validator;
42 
49  public function __construct(
50  $fileId,
51  \Magento\MediaStorage\Helper\File\Storage\Database $coreFileStorageDb,
52  \Magento\MediaStorage\Helper\File\Storage $coreFileStorage,
53  \Magento\MediaStorage\Model\File\Validator\NotProtectedExtension $validator
54  ) {
55  $this->_coreFileStorageDb = $coreFileStorageDb;
56  $this->_coreFileStorage = $coreFileStorage;
57  $this->_validator = $validator;
58  parent::__construct($fileId);
59  }
60 
67  protected function _afterSave($result)
68  {
69  if (empty($result['path']) || empty($result['file'])) {
70  return $this;
71  }
72 
73  if ($this->_coreFileStorage->isInternalStorage() || $this->skipDbProcessing()) {
74  return $this;
75  }
76 
77  $this->_result['file'] = $this->_coreFileStorageDb->saveUploadedFile($result);
78 
79  return $this;
80  }
81 
88  public function skipDbProcessing($flag = null)
89  {
90  if ($flag === null) {
92  }
93  $this->_skipDbProcessing = (bool)$flag;
94  return $this;
95  }
96 
104  {
105  //validate with protected file types
106  if (!$this->_validator->isValid($extension)) {
107  return false;
108  }
109 
110  return parent::checkAllowedExtension($extension);
111  }
112 
118  public function getFileSize()
119  {
120  return $this->_file['size'];
121  }
122 
128  public function validateFile()
129  {
130  $this->_validateFile();
131  return $this->_file;
132  }
133 }
__construct( $fileId, \Magento\MediaStorage\Helper\File\Storage\Database $coreFileStorageDb, \Magento\MediaStorage\Helper\File\Storage $coreFileStorage, \Magento\MediaStorage\Model\File\Validator\NotProtectedExtension $validator)
Definition: Uploader.php:49