сохраните изображение в общей папке вместо хранилища 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}}">

Как сохранить мое изображение (и файл в будущем) в общей папке вместо хранилища?

Author: siros, 2017-03-02

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);
 11
Author: Ankit, 2017-07-02 14:27:04

Вы можете передать опцию диска методу класса \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']);
 2
Author: Inoyatulloh, 2018-09-03 10:14:58

Вам потребуется связать каталог хранилища с вашей общей папкой с помощью:

php artisan storage:link

Как только вы это сделаете, чтобы отобразить его в представлении, вы можете сделать:

{{ asset('storage/file.txt') }}

Или в вашем случае:

<img src="{{ asset('storage/app/' . $patch) }}">
 1
Author: Samsquanch, 2017-03-02 17:44:13