/** * This method update and save all the changes into the profile's user * and return to the user's profile page * @param Request $request * @return $this|\Illuminate\Http\RedirectResponse */ public function postUpdateProfile(Request $request) { $validator = Validator::make($request->only(['name']), ['name' => 'required']); if ($validator->fails()) { return back()->withInput()->withErrors($validator); } //Find the user if exist before update $user = User::findOrFail(Auth::user()->id); $user->categories()->detach(); if ($request->input('categories') && is_array($request->input('categories'))) { $user->categories()->attach($request->input('categories')); } //dd($request->all()); try { //If has file if ($request->hasFile('profilePicture') && $request->file('profilePicture')->isValid()) { //validate if the uploaded file is an image $validator = Validator::make($request->only(['profilePicture']), ['profilePicture' => 'image']); if ($validator->fails()) { return back()->withInput()->withErrors($validator); } //save temp file $filename = Storage::putFile('public/profiles', Input::file('profilePicture')); //resize to 200px $image = Image::make(storage_path() . '/app/' . $filename)->orientate(); $image = $image->fit(200); //delete the temp file ImageController::delete($filename); //save the new user file $filename = str_random(10) . '.jpg'; ImageController::save('/profiles/' . $filename, $image->stream('jpg', 70)); //Delete the old image if ($user->profileImage && ImageController::exist('profiles/' . $user->profileImage)) { ImageController::delete('profiles/' . $user->profileImage); } } } catch (\Exception $error) { Log::error($error->getMessage()); return back()->withInput()->withErrors(array('message' => trans('app.Error505'))); } //Save the user data $user->name = $request->input('name', $user->name); $user->aboutMe = $request->input('aboutMe', $user->aboutMe); $user->country = $request->input('country', $user->country); $user->state = $request->input('state', $user->state); $user->city = $request->input('city', $user->city); $user->city2 = $request->input('city2', $user->city); $user->birthday = empty($request->input('birthday')) ? null : $request->input('birthday'); $user->profileImage = isset($filename) ? $filename : $user->profileImage; $user->save(); $request->session()->flash('flash-success', trans('app.ProfileSaveSuccess')); return redirect()->route('getUserProfile', ['name' => str_slug($user->name), 'id' => $user->id]); }
/** * This method save the profile image from facebook * @param $url * @return string */ private function saveImageFromUrl($url) { $name = str_random(10) . '.jpg'; //resize to 200px $image = Image::make(str_replace('normal', 'large', $url))->fit(200); $image->save(public_path($name)); ImageController::save('/profiles/', $name, public_path($name)); unlink(public_path($name)); return $name; }