Example #1
0
 /**
  * Handle PUT request. Crop image.
  *
  * @param  \Symfony\Component\HttpFoundation\Request $request
  * @return \Symfony\Component\HttpFoundation\Response
  */
 public function putAction(Request $request)
 {
     $filename = $this->getFileNameParam($request);
     $options = $request->get('options', array());
     try {
         $file = $this->uploader->createFile($filename);
     } catch (FileNotFoundException $e) {
         return $this->json($this->uploader->getErrorMessage('404'), 404);
     }
     $image = $this->uploader->getImageManager()->make($file);
     $this->fire('crop.before', $event = new Event($file, $image));
     if ($event->aborted()) {
         return $this->json($event->getError($this->uploader->getErrorMessage('abort')));
     }
     $x = (int) $request->get('x');
     $y = (int) $request->get('y');
     $width = (int) $request->get('width');
     $height = (int) $request->get('height');
     if (!empty($width) && !empty($height)) {
         if ($this->uploader->config('keep_original_image')) {
             $tempImage = clone $image;
         }
         $image->crop($width, $height, $x, $y)->save($file);
         $this->uploader->createImageVersions($event->getFilename() ?: $file->getFilename());
         if ($this->uploader->config('keep_original_image')) {
             $tempImage->save();
         }
     }
     $this->fire('crop.after', $event);
     $file = $this->fileToArray($file, null, $event->getData());
     return $this->json(compact('file'));
 }