/** * */ 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('/'); }