2017-09-14 4 views
0

J'ai cette solution pour télécharger l'image du profil de l'utilisateur en ramassant le dossier de stockage qui fonctionne. La question est comment puis-je jouer l'extension de l'image à la banque ou comment puis-je valider dans le contrôleur les autres extensions quelqu'un peut-il m'aider?Comment mettre d'autres extensions d'image dans Laravel 5.2?

Contrôleur

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() 
{ 
    $user = Auth::user(); 
    $image ="". $user->email . '-' . $user->id . '.jpg'; 
    $file = Storage::disk('local')->get($image); 
    return Response::make($file,200,[ 'Content-Type' => 'image/jpeg']); 


} 

Route

Route::get('/account', [ 
'uses' => '[email protected]', 
'as' => 'account' 
]); 

Route::post('/upateaccount', [ 
'uses' => '[email protected]', 
'as' => 'account.save' 
]); 

Route::get('/userimage', [ 
'uses' => '[email protected]', 
'as' => 'account.image' 
]); 

Voir

<img src="{{ route('account.image')}}"> 

Dépôt gitlab ce https://gitlab.com/ronnyere/imageUploadLaravel.git

Répondre

0

Je vous recommande d'utiliser une rallonge pour stocker les images mises en ligne

Pour encoder toutes les extensions d'image possibles pour une extension, vous pouvez utiliser Intervention Image

Vous pouvez changer la extension de toutes les images téléchargées en utilisant ...

Image::make($request->file('image')->getRealPath())->encode('jpg'); 

Vous pouvez modifier jpg à un autre extensions ainsi