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); } }
/** * Загрузка картинки */ 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'); } }