51 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| namespace kernel;
 | |
| 
 | |
| use app\helpers\Debug;
 | |
| 
 | |
| class FileUpload
 | |
| {
 | |
|     public string $fileTmpPath;
 | |
|     public string $fileName;
 | |
|     public string $fileSize;
 | |
|     public string $fileType;
 | |
|     public array $fileNameCmps;
 | |
|     public string $fileExtension;
 | |
|     public string $newFileName;
 | |
|     public array $allowedFileExtensions = ['jpg', 'gif', 'png'];
 | |
| 
 | |
|     public function __construct(array $file)
 | |
|     {
 | |
|         $this->fileTmpPath = $file['tmp_name'];
 | |
|         $this->fileName = $file['name'];
 | |
|         $this->fileSize = $file['size'];
 | |
|         $this->fileType = $file['type'];
 | |
|         $this->fileNameCmps = explode('.', $this->fileName);
 | |
|         $this->fileExtension = strtolower(end($this->fileNameCmps));
 | |
|     }
 | |
| 
 | |
|     public function setNewFileName(): void
 | |
|     {
 | |
|         $this->newFileName = md5(time() . $this->fileName) . '.' . $this->fileExtension;
 | |
|     }
 | |
| 
 | |
|     public function checkExtension(): void
 | |
|     {
 | |
| 
 | |
|     }
 | |
| 
 | |
|     public function upload(): void
 | |
|     {
 | |
|         $this->newFileName = md5(time() . $this->fileName) . '.' . $this->fileExtension;
 | |
|         if (in_array($this->fileExtension, $this->allowedFileExtensions)) {
 | |
|             mkdir('./resources/upload/' . mb_substr($this->newFileName, 0, 2) . '/' . mb_substr($this->newFileName, 2, 2) . '/', 0777, true);
 | |
|             $uploadFileDir = './resources/upload/' . mb_substr($this->newFileName, 0, 2) . '/' . mb_substr($this->newFileName, 2, 2) . '/';
 | |
|             $dest_path = $uploadFileDir . $this->newFileName;
 | |
|             move_uploaded_file($this->fileTmpPath, $dest_path);
 | |
|         } else {
 | |
|             echo "Ниченр не получилочь :(";
 | |
|         }
 | |
|     }
 | |
| 
 | |
| } |