Insertar imágenes en la base de datos.
Estoy haciendo una aplicación inmobiliaria en Spring Boot – Thymeleaf y realmente necesito preguntarte cómo almacenar imágenes. Estaba pensando en hacer una tabla solo para imágenes y anotarla como manyToOne, e insertarla en la entidad Property porque una propiedad puede tener 10, 15, 20 imágenes y eso es lo que sé cómo hacer.
Pero no estoy seguro de cómo manejar el resto del código. ¿Cómo hacer la carga de archivos en el método /add? ¿Y también cómo añadir y mostrarlos en Thymeleaf?
Este es mi método /properties/add sin la opción de insertar imágenes:
@RequestMapping("/add")
public String add(Model theModel) {
Property theProperty = new Property();
User theUser = new User();
theProperty.setUser(theUser);
List<user> userList = userService.findAll();
Address theAddress = new Address();
theProperty.setAddress(theAddress);
List<address> addressList = addressService.findAll();
theModel.addAttribute("property", theProperty);
theModel.addAttribute("user", userList);
theModel.addAttribute("address", addressList);
return "properties/property-form";
}
No espero que lo escribas, pero quizás alguien conozca el proyecto más similar.
davy.ai
Para manejar la carga de archivos en el método
/add
, se puede utilizar la anotación@RequestParam
para obtener el archivo cargado y luego guardarlo en la base de datos.Aquí tienes un ejemplo de código para el método
/add
:En este fragmento de código, se utiliza la anotación
@RequestParam("file")
para obtener el archivo cargado. Comprobamos si el archivo no está vacío y luego convertimos el archivo en un array de bytes y lo almacenamos en el objetoProperty
.Para mostrar las imágenes en Thymeleaf, se puede utilizar la etiqueta
img
y establecer el atributosrc
de la etiqueta con la ruta URL de la imagen. Aquí tienes un ejemplo de código para mostrar las imágenes cargadas en Thymeleaf:En este fragmento de código, se establece el atributo
src
de la etiquetaimg
con la ruta URL de la imagen, que consiste en la carpeta/images/
seguida del ID del objetoProperty
.Ten en cuenta que también deberás configurar tu aplicación para servir las imágenes cargadas desde la carpeta
/images/
.