Seleccionar página

Toca manejar imágenes. Un usuario podrá subir opcionalmente una imagen al crear o modificar una nota, ya sea desde una url o desde un archivo de su dispositivo (entendiendo como dispositivo desde un movil/tablet/ordenador). Para ello vamos a:

  • Alterar la tabla de notas para añadir un nuevo campo de imagen.
  • Instalar paquete Intervention Image.
  • Configurar el servidor Apache para el manejo de imágenes.
  • Configurar Laravel para el guardado de imágenes.
  • Crear un Trait para poder usar sus funciones dentro cualquier clase que la «use».

Abrimos el archivo y editamos:

Instalamos el paquete para el manejo de imagenes:

Añadimos el provider y el alias:

Para no tener error en los «mime type» hay que descomentar esta linea:

Vamos a editar el archivo de configuracion de guardado de archivos:

Ahora, a por el Trait. Tienes la definición aquí :

Uso del Trait. Lo actualizaremos primero los métodos store y update en el controlador de Notas y más adelante en el de Usuarios:

Por último pero no menos importante, hay que tener que en cuenta que la subida de imágenes no se puede hacer desde el verbo PUT, por tanto, sobreescribiremos la ruta del verbo PUT por la POST y eso es tan fácil como añadir una ruta post justo encima de la del resource, tal que:

Para aclarar, desde el Front-End las peticiones de actualización que incluyan imágenes se harán desde el verbo POST, en caso contrario, se harán desde el verbo PUT, y en ambos casos… el método en el servidor será el update. Haremos referencia a este post cuando estemos en la parte de Angular.

 

Fuente:

Resize Images In Laravel 5.1 using intervention

Image upload using storage function to public folder

How to delete a file using Filesystem

Image Uploading With Thumbnail Creation in Laravel 5.3