public function run() { // folder for uploaded files $tempFolder = Yii::app()->basePath . DIRECTORY_SEPARATOR . '..' . $this->tempFolder; if (!is_writable($tempFolder)) { throw new CException('temporary folder is not exists or not writable. Path:' . $tempFolder); } $uploader = new FileUploader($this->allowedFileExtensions, $this->fileLimit); $result = $uploader->handleUpload($tempFolder); if (!isset($result['error'])) { $imageHandler = new CImageHandler(); $imageHandler->load($tempFolder . $result['filename']); try { // if min/max weight/height are set - check those conditions $this->validateImageDimensions($imageHandler->getWidth(), $imageHandler->getHeight()); $this->getController()->successfulAjaxResponse(array('fileName' => $imageHandler->getBaseFileName(), 'imageSrc' => '/application' . $this->tempFolder . $imageHandler->getBaseFileName())); } catch (CException $e) { $errorMsg = $imageHandler->getBaseFileName() . ' - ' . $e->getMessage(); $this->getController()->unsuccessfulAjaxResponse(array('errorMessage' => $errorMsg)); } } else { $this->getController()->unsuccessfulAjaxResponse(array('errorMessage' => $result['error'])); } }
/** * Copy image from temporary folder to proper destination and create thumbnails */ protected function saveImage() { $imageHandler = new CImageHandler(); $imageHandler->load($this->getTempFolder(TRUE) . $this->image); $imageHandler->save($this->getImagesFolder(TRUE) . $imageHandler->getBaseFileName()); $settings = $this->getThumbsSettings(); if (!empty($settings)) { $imageHandler = new CImageHandler(); $imageHandler->load($this->getTempFolder(TRUE) . $this->image); foreach ($settings as $prefix => $dimensions) { list($width, $height) = $dimensions; $imageHandler->thumb($width, $height)->save($this->getImagesFolder(TRUE) . $prefix . $imageHandler->getBaseFileName()); } } }