Exemple #1
0
 /**
  * @return string
  */
 public function actionSaveCroppedImage()
 {
     $data = \Yii::$app->request->post('data');
     $data = $data ? Json::decode($data) : null;
     if ($data) {
         $fileId = $data['fileId'];
         $imageEntity = EntityToFile::find()->where('file_id = :id', [':id' => (int) $fileId])->one();
         if ($imageEntity) {
             //Find original img path
             $directory = FPM::getOriginalDirectory($imageEntity->file_id);
             FileHelper::createDirectory($directory, 0777, true);
             $fileName = $directory . DIRECTORY_SEPARATOR . FPM::getOriginalFileName($imageEntity->file_id, $imageEntity->file->base_name, $imageEntity->file->extension);
             //Delete cached image
             FPM::cache()->delete($imageEntity->file_id);
             //Delete thumbs
             $this->clearImageThumbs($imageEntity->file);
             Image::crop($fileName, $data['width'], $data['height'], $data['startX'], $data['startY'])->save($fileName);
             return Json::encode(['replaces' => [['what' => '#preview-image-' . $imageEntity->file_id, 'data' => Html::img(FPM::originalSrc($imageEntity->file_id) . '?' . time(), ['class' => 'file-preview-image', 'id' => 'preview-image-' . $imageEntity->file_id])]], 'js' => Html::script('hideModal(".modal")')]);
         }
     }
 }