예제 #1
0
 /**
  * Загружает изображение на диск
  *
  * При необходимости производит наложение водяного знака и создание уменьшенной копии
  *
  * @param UploadedFile $file
  * @param $options
  * @return bool|string
  */
 public function uploadImage(UploadedFile $file)
 {
     /** @var $file \yii\web\UploadedFile */
     $basePath = Yii::getAlias($this->_baseUploadPathAlias);
     $resultFileName = GlobalHelper::normalizeName($file->name, true);
     $resultFilePath = $basePath . $this->folder . '/' . $resultFileName;
     $thumbImagePath = $basePath . $this->folder . '/thumbs/' . $resultFileName;
     $watermarkImagePath = $basePath . $this->_watermarkFileName;
     // Проверяем существование и права доступа папки для загрузки
     if ($this->checkFolder($basePath . $this->folder, true)) {
         // Если файл получается сохранить
         if ($file->saveAs($resultFilePath)) {
             // Если отмечена галочка "Создавать уменьшенную копию"
             if ($this->create_thumb) {
                 if ($this->createThumb($resultFilePath, $thumbImagePath)) {
                     $this->_result[] = 'Уменьшенная копия изображения создана';
                 }
             }
             // Если отмечена галочка "Добавлять водяной знак"
             if ($this->watermark) {
                 if ($this->putWatermark($resultFilePath, $watermarkImagePath)) {
                     $this->_result[] = 'Водяной знак наложен';
                 }
             }
             return $resultFileName;
         }
     }
     return false;
 }