ccc

Laravel: File, subir documentos e imágenes

En la vista form_add_foto_cineasta.blade.php:
<form action="{{ url('admin/youtube/post/add_foto_cineasta') }}" enctype="multipart/form-data" method="POST">
            {{ csrf_field() }}
                    <select name="id_art_youtube">
                        @foreach($arrCineastas as $item)
                            <option value="{{ $item->id }}">{{ $item->nom_art_youtube }}</option>
                        @endforeach
                    </select>
                    <hr>
                    <input type="file" name="foto_art_youtube">
<br>
                    <button type="submit" class="btn btn-success">Subir fotografía</button>
</form>
               
En routes/web.php:
Route::get('/youtube/form/add_foto_cineasta', 'Admin\YoutubeController@formAddFotoCineasta');

En admin/YoutubeController.php:
public function addFotoCineasta(Request $request)
    {
        $this->validate($request, [
            'foto_art_youtube' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
        ]);
        Youtube::add_foto_cineasta($request);
        return redirect('/admin/youtube/form/add_foto_cineasta');
    }

En la clase Youtube.php:
public static function add_foto_cineasta($request) {
        $nom_fichero = $request->foto_art_youtube->getClientOriginalName();
        $ext = $request->foto_art_youtube->getClientOriginalExtension();
        $nom_fichero = str_replace(".".$ext, "", $nom_fichero);
        $azar = rand(0,9999);
        $nom_fichero = $nom_fichero."_".$azar.".".$ext;
        $request->foto_art_youtube->move(public_path('images'), $nom_fichero);

        DB::table('art_youtube')
            ->where('id', $request->id_art_youtube)
            ->update([
                'nom_foto' => $nom_fichero
            ]);
        return 0;
    }

No hay comentarios:

Publicar un comentario