Je veux save mon avatar dans le dossier "Public" et le récupérer.
D'accord. Je peux l'save mais dans le dossier "stockage / application" au lieu de "public"
mon ami m'a dit d'aller à "config / filesystem.php" et de l'éditer, alors je l'ai fait comme ça
'disks' => [ 'public' => [ 'driver' => 'local', 'root' => storage_path('image'), 'url' => env('APP_URL').'/public', 'visibility' => 'public', ],
toujours pas de changement.
ici mes codes simples
Route:
Route::get('pic',function (){ return view('pic.pic'); }); Route::post('saved','test2Controller@save');
Manette
public function save(Request $request) { $file = $request->file('image'); //save format $format = $request->image->extension(); //save full adress of image $patch = $request->image->store('images'); $name = $file->getClientOriginalName(); //save on table DB::table('pictbl')->insert([ 'orginal_name'=>$name, 'format'=>$base, 'patch'=>$patch ]); return response() ->view('pic.pic',compact("patch")); }
Vue:
{!! Form::open(['url'=>'saved','method'=>'post','files'=>true]) !!} {!! Form::file('image') !!} {!! Form::submit('save') !!} {!! Form::close() !!} <img src="storage/app/{{$patch}}">
Comment puis-je sauvegarder mon image (et le file à l'avenir) dans le dossier public plutôt que dans le stockage?
Dans config / filesystems.php, vous pouvez le faire … changer l'élément racine en public
'disks' => [ 'public' => [ 'driver' => 'local', 'root' => public_path() . '/uploads', 'url' => env('APP_URL').'/public', 'visibility' => 'public', ] ]
et vous pouvez y accéder en
Storage::disk('public')->put('filename', $file_content);
Vous devrez lier votre directory de stockage à votre dossier public avec:
php artisan storage:link
Une fois que vous avez fait cela, pour l'afficher dans la vue que vous pouvez faire:
{{ asset('storage/file.txt') }}
Ou dans votre cas:
<img src="{{ asset('storage/app/' . $patch) }}">