Как загрузить изображение в базу данных, используя laravel? - PullRequest
2 голосов
/ 25 февраля 2020

Я пытаюсь загрузить изображение в базу данных, но, к сожалению, не вставляю изображение в базу данных, как это исправить, пожалуйста, помогите мне спасибо.

таблица базы данных https://ibb.co/3sT7C2N

контроллер

public function Add_slider(Request $request)
{
    $this->validate($request, [
        'select_image'  => 'required'
    ]);

    $content = new Sliders;

    if($request->file('select_image')) {
        $content->slider_image = Storage::disk('')->putFile('slider', $request->select_image);
    }

    $check = Sliders::create(
        $request->only(['slider_image' => $content])
    );

    return back()
    ->with('success', 'Image Uploaded Successfully')
    ->with('path', $check);
}

Ответы [ 2 ]

1 голос
/ 25 февраля 2020

Вы должны сделать следующим образом:

public function Add_slider(Request $request)
{
     $this->validate($request, [
         'select_image'  => 'required'
     ]);
     $image = $request->file('select_image');         
     $extension = $image->getClientOriginalExtension();
     Storage::disk('public')->put($image->getFilename().'.'.$extension,  File::get($image));
     $content = new Sliders;
     if($request->file('select_image'))
     {
         $content->slider_image = $image->getFilename().'.'.$extension;;
         $content->save();         

         $check = Sliders::where('id', $content->id)->select('slider_image')->get();
         return back()->with('success', 'Image Uploaded Successfully')->with('path',$check);
     }
}

И в файле блэйд просмотра:

<img src="{{url($path[0]->slider_image)}}" alt="{{$path[0]->slider_image}}">
0 голосов
/ 25 февраля 2020

Возвращает только имя файла:

Storage::disk('')->putFile('slider', $request->select_image);

Используйте это вместо:

Sliders::create([
    'slider_image' => $request->file('select_image')->get(),
]);

Убедитесь, что тип столбца из базы данных - двоичный файл / блоб.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...