сохраните изображение в общей папке вместо хранилища laravel 5
Я хочу сохранить свой аватар в папке "Public" и извлечь его.
Хорошо. я могу сохранить его, но в папке "хранилище/приложение" вместо "общедоступный"
Мой друг сказал мне пойти в"config/filesystem.php "и отредактируйте его, поэтому я сделал это так
'disks' => [
'public' => [
'driver' => 'local',
'root' => storage_path('image'),
'url' => env('APP_URL').'/public',
'visibility' => 'public',
],
По-прежнему никаких изменений.
Вот мои простые коды
Маршрут:
Route::get('pic',function (){
return view('pic.pic');
});
Route::post('saved','test2Controller@save');
Контроллер
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"));
}
Просмотр:
{!! Form::open(['url'=>'saved','method'=>'post','files'=>true]) !!}
{!! Form::file('image') !!}
{!! Form::submit('save') !!}
{!! Form::close() !!}
<img src="storage/app/{{$patch}}">
Как сохранить мое изображение (и файл в будущем) в общей папке вместо хранилища?
3 answers
В config/filesystems.php , ты мог бы это сделать... измените корневой элемент в общедоступном
'disks' => [
'public' => [
'driver' => 'local',
'root' => public_path() . '/uploads',
'url' => env('APP_URL').'/public',
'visibility' => 'public',
]
]
И вы можете получить к нему доступ с помощью
Storage::disk('public')->put('filename', $file_content);
Вы можете передать опцию диска методу класса \Illuminate\Http\UploadedFile
:
$file = request()->file('image');
$file->store('toPath', ['disk' => 'public']);
Или вы можете создать новый диск файловой системы и сохранить его на этот диск.
Вы можете создать новый диск для хранения в config/filesystems.php
:
'my_files' => [
'driver' => 'local',
'root' => public_path() . '/myfiles',
],
В контроллере:
$file = request()->file('image');
$file->store('toPath', ['disk' => 'my_files']);
Вам потребуется связать каталог хранилища с вашей общей папкой с помощью:
php artisan storage:link
Как только вы это сделаете, чтобы отобразить его в представлении, вы можете сделать:
{{ asset('storage/file.txt') }}
Или в вашем случае:
<img src="{{ asset('storage/app/' . $patch) }}">