Commit 93828a90 authored by Alfonso Rafael Solis Rangel's avatar Alfonso Rafael Solis Rangel
Browse files

Almacenamiento de imagenes

parent 79acc002
Loading
Loading
Loading
Loading
+41 −2
Original line number Diff line number Diff line
@@ -8,6 +8,7 @@
use App\Models\Profesion;
use App\Models\Subgrupo;
use Illuminate\Http\Request;
use Illuminate\Support\Str;

class ContactoController extends Controller
{
@@ -43,8 +44,17 @@ public function store(Request $request)
            'foto_perfil' => 'image|mimes:jpeg,png,jpg,gif|max:2048',
            'nombre' => 'required|max:255|string',
        ]);
        $contacto = Contacto::create($request->all());
        dd($request->all());

        $path_file = $this->storeProfilePicture($request);
        $data = $request->all();

        if ($path_file) {
            $data['foto_perfil'] = 'storage/' . $path_file;
        }

        $contacto = Contacto::create($data);
        
        dd($data);
    }

    /**
@@ -78,4 +88,33 @@ public function destroy(Contacto $contacto)
    {
        //
    }

    /**
     * Save profile picture in laravel project
     */
    private function storeProfilePicture(Request $request)
    {
        if ($request->hasFile('foto_perfil')) {
            // Obtener el archivo de la solicitud
            $file = $request->file('foto_perfil');

            // Generar un UUID de versión 4
            $uuid = Str::uuid()->toString();

            // Obtener la extensión del archivo
            $extension = $file->getClientOriginalExtension();

            // Crear el nuevo nombre de archivo
            $filename = $uuid . '.' . $extension;

            // Almacenar el archivo en el directorio storage/app/public/fotos_perfil
            $path = $file->storeAs('public/fotos_perfil', $filename);

            // Retornar la ruta del archivo sin el prefijo 'public/'
            return str_replace('public/', '', $path);
        }

        // Retornar null si no hay archivo
        return null;
    }
}