Example #1
0
 /**
  * Upload file
  */
 public function uploadAction()
 {
     \Auth::check();
     $file = new File();
     $file->userId = $_SESSION['uid'];
     $file->deleted = 0;
     $errors = [];
     $successMessage = '';
     try {
         $uploadedCount = $file->getUploadedCount();
         if ($_FILES["filename"]["size"] > MAX_FILE_SIZE) {
             $errors[] = "Размер файла превышает три мегабайта";
         } elseif (!is_uploaded_file($_FILES["filename"]["tmp_name"])) {
             $errors[] = "Ошибка загрузки файла";
         } elseif ($uploadedCount >= MAX_UPLOADED_FILES) {
             $errors[] = "Превышено допустимое количество файлов (" . MAX_UPLOADED_FILES . ")";
         } else {
             $file->name = $_FILES["filename"]['name'];
             $file->save();
             move_uploaded_file($_FILES["filename"]["tmp_name"], FILE_STORAGE_PATH . $this->getHashedFileName($file));
             $successMessage = 'файл загружен';
         }
     } catch (\Exception $e) {
         $errors[] = "Ошибка загрузки файла";
     }
     $this->show('files', $this->getVarsArray($errors, $successMessage));
 }