/**
  *
  */
 public function postUpload()
 {
     $rules = ['file' => 'required|image|max:' . $this->imageSizeLimit];
     $validator = Validator::make(Input::all(), $rules);
     if ($validator->fails()) {
         return Redirect::back()->withErrors($validator->errors())->withInput();
     }
     DB::transaction(function () {
         $userImage = new UserImage();
         $userImage->user_id = Auth::id();
         $userImage->save();
         // resize
         $path = tempnam(storage_path('images'), 'image');
         $image = Image::make(Input::file('file'));
         $image->fit($this->imageWidth, $this->imageHeight);
         $image->save($path);
         /** @var \Aws\S3\S3Client $s3 */
         $s3 = AWS::get('s3');
         $s3->putObject(['Bucket' => $this->imageBucket, 'Key' => '/demo/' . $userImage->id . '.jpg', 'SourceFile' => $path]);
         $image->destroy();
         File::delete($path);
     });
     return Redirect::to('/');
 }