Estoy tratando de cargar una imagen en la base de datos, pero desafortunadamente no estoy insertando una imagen en la base de datos para solucionarlo, por favor ayúdenme, gracias.

Tabla de base de datos https://ibb.co/3sT7C2N

controlador

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
Zubair 25 feb. 2020 a las 15:05

2 respuestas

La mejor respuesta

Debe hacerlo de la siguiente manera:

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);
     }
}

Y a la vista del archivo blade:

<img src="{{url($path[0]->slider_image)}}" alt="{{$path[0]->slider_image}}">
1
Amit Senjaliya 25 feb. 2020 a las 12:29

Esto devuelve solo el nombre de archivo:

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

Utilice esto en su lugar:

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

Asegúrese de que el tipo de columna de la base de datos sea binario / blob.

0
user8555937 25 feb. 2020 a las 12:20