Como posso recuperar uma imagem da pasta Storage sem passa parametro na Route Laravel5.2?
12/09/2017
0
Meu código atual esta funcionando mais esta com uma falha de segurança pois consigo acessar a imagem de outro Usuário pela URL consequência de passa um parâmetro na Rota,
Alguém sabe como posso resolver esse problema jś tentei varias abordagens e não sei mais o que fazer .
Controller
Route
View
Repository GitLab
Codigo::
Laracsts
Alguém sabe como posso resolver esse problema jś tentei varias abordagens e não sei mais o que fazer .
Controller
public function getAccount() { return view('account', ['user' => Auth::user()]); } public function postSaveAccount(Request $request) { $this->validate($request, [ 'email' => 'required|email|max:100' ]); $user = Auth::user(); $old_email = $user->email; $user->email = $request['email']; $user->update(); $file = $request->file('image'); $file_email = $request['email'] . '-' . $user->id . '.jpg'; $old_file_email = $old_email . '-' . $user->id . '.jpg'; $update = false; if (Storage::disk('local')->has($old_file_email)) { $old_file = Storage::disk('local')->get($old_file_email); Storage::disk('local')->put($file_email, $old_file); $update = true; } if ($file) { Storage::disk('local')->put($file_email, File::get($file)); } if ($update && $old_file_email !== $file_email) { Storage::delete($old_file_email); } return redirect()->route('account'); } public function getUserImage($file_email) { $file = Storage::disk('local')->get($file_email); return Response::make($file,200,[ 'Content-Type' => 'image/jpeg']); }
Route
Route::get('/account', [ 'uses' => 'UserController@getAccount', 'as' => 'account' ]); Route::post('/upateaccount', [ 'uses' => 'UserController@postSaveAccount', 'as' => 'account.save' ]); Route::get('/userimage/', [ 'uses' => 'UserController@getUserImage', 'as' => 'account.image', 'middleware' => ['imageuser'] ]);
View
@if (Storage::disk('local')->has($user->email . '-' . $user->id . '.jpg')) <section class="row new-post"> <div class="col-md-6 col-md-offset-3"> <img src="{{ route('account.image', ['file_email' => $user->email . '-' . $user->id . '.jpg']) }}" alt="" class="img-responsive"> </div> </section> @endif
Repository GitLab
Codigo::
Laracsts
Ronnyere Andrade
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)