Subir imágenes es una funcionalidad muy común en cualquier aplicación web.
Por ejemplo:
perfiles de usuario
productos de una tienda
artículos de un blog
En este tutorial aprenderás cómo subir imágenes utilizando Laravel de forma sencilla y segura.
Crear el formulario HTML
Primero necesitamos un formulario para subir la imagen.
```
<form action="/upload" method="POST" enctype="multipart/form-data">
@csrf
<input type="file" name="image">
<button type="submit">Subir imagen</button>
</form>
```
El atributo importante aquí es:
```
enctype="multipart/form-data"
```
Sin esto el archivo no se enviará correctamente.
Crear la ruta
Ahora definimos una ruta en Laravel.
<pre> <code>
use App\Http\Controllers\UploadController;
Route::post('/upload', [UploadController::class, 'store']);
</code> </pre>
Crear el controlador
Creamos el controlador con Artisan.
<pre> <code>
php artisan make:controller UploadController
</code> </pre>
Ahora implementamos el método store.
<pre> <code>
public function store(Request $request) {
$request->validate([ 'image' => 'required|image|max:2048' ]);
$path = $request->file('image')->store('images', 'public');
return back()->with('success', 'Imagen subida correctamente');
}
</code> </pre>
Este código:
valida que el archivo sea una imagen
limita el tamaño a 2MB
guarda la imagen en el disco public
Crear el enlace al almacenamiento
Para que las imágenes puedan verse en el navegador ejecuta:
<pre> <code>
php artisan storage:link
</code> </pre>
Esto crea un enlace simbólico hacia la carpeta storage.
Mostrar la imagen
Para mostrar la imagen en una vista:
```
<img src="{{ asset('storage/' . $path) }}">
```
Conclusión
Subir imágenes con Laravel es muy sencillo gracias a las herramientas que ofrece el framework.
En este tutorial aprendiste:
crear un formulario de subida
validar archivos
guardar imágenes en el servidor
mostrarlas en la vista
Esta funcionalidad es la base para muchas aplicaciones web modernas.