public function run()
 {
     if ($image = CUploadedFile::getInstanceByName($this->field)) {
         // Валидация по форме
         $v = new ImageForm();
         $v->image = true;
         $v->image_file = $image;
         if ($v->validate()) {
             $preid = Yii::app()->request->getPost('preid', date('Ymd'));
             $tmp = pathinfo($image->name);
             $filename = EString::strtolower(EFile::sanitize($tmp['filename']) . '_' . uniqid() . '.' . $tmp['extension']);
             $path = Yii::getPathOfAlias($this->folder . '.' . $this->field) . DIRECTORY_SEPARATOR . $preid . DIRECTORY_SEPARATOR;
             $result = Image::addFile($image, $filename, $path, $this->sizes, $preid, null, $this->watermark ? Yii::app()->params['watermark'] : false);
             echo '"' . Image::getFile($result, 'normal') . '"';
         } else {
             echo '{"error":"Файл не проходит валидацию, выберите другой."}';
         }
     } else {
         echo '{"error":"Ошибка загрузки файла."}';
     }
 }
 /**
  * Загрузка картинки
  */
 protected function uploadImage($field, $name, $sizes, $alt = '', $title = '', $addWatermark = false, $bg = '#FFFFFF', $file_type = 'jpg', $saveOld = false)
 {
     /*
      * @string $field Имя виртуального поля в котром хранится файл
      * @string $name Имя файла, который будет сохранен на диске
      */
     $owner = $owner = $this->getOwner();
     if ($owner->{$field} instanceof CUploadedFile) {
         $filename = EString::strtolower(EFile::sanitize($name) . '.' . $file_type);
         $path = Yii::getPathOfAlias('webroot.files.' . EString::strtolower(get_class($owner)) . '.' . $field) . DIRECTORY_SEPARATOR;
         return $owner->{$field} = Image::addFile($owner->{$field}, $filename, $path, $sizes, $alt, $title, $addWatermark, $bg, $file_type, $saveOld);
     }
 }
Ejemplo n.º 3
0
 /**
  * Загрузка картинки
  */
 public function uploadImage($field, $name, $sizes, $alt = '', $title = '')
 {
     /*
      * @string $field Имя виртуального поля в котром хранится файл
      * @string $name Имя файла, который будет сохранен на диске
      */
     if ($image = CUploadedFile::getInstance($this, $field)) {
         $orig_field = str_replace('_file', '', $field);
         $filename = EString::strtolower(EFile::sanitize($name) . '.' . $image->extensionName);
         $path = Yii::getPathOfAlias('webroot.files.' . EString::strtolower(__CLASS__) . '.' . $orig_field) . DIRECTORY_SEPARATOR;
         Image::deleteFile($this->{$orig_field}, $sizes);
         $this->{$orig_field} = Image::addFile($image, $filename, $path, $sizes, $alt, $title, false, '#FFFFFF');
     }
 }