Autor Tema: postgresql guardar una foto o imagen desde java FileInputStream setBinaryStream  (Leído 2669 veces)

yromanova

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 5
    • Ver Perfil
Hola, espero que esteis muy bien. Oye, tengo una duda, como se hace para guardar una foto o imagen en postgres desde java, digamos, en si la foto, y no el URL de la foto...
« Última modificación: 12 de Marzo 2022, 17:47 por Ogramar »

javi in the sky

  • Avanzado
  • ****
  • Mensajes: 393
    • Ver Perfil
Re: Postgresql
« Respuesta #1 en: 14 de Noviembre 2021, 19:50 »
Hola almacenar un archivo en una base de datos puede considerarse poco adecuado (porque puede ser ineficiente), aunque a veces se hace. No domino el tema, pero en PostgreSQL tienes dos maneras de almacenar información binaria como un fichero de imagen, el tipo de dato bytea y el uso de Objeto de gran tamaño (Large Object).
Para guardar una imagen en forma de bytea usando JDBC puedes tener una tabla donde un campo sea bytea (supongamos CREATE TABLE images (imgname text, img bytea); )

El guardado de una imagen lo harías como:

Código: [Seleccionar]
File file = new File("imagen1.gif");
FileInputStream fis = new FileInputStream(file);
PreparedStatement ps = conn.prepareStatement("INSERT INTO images VALUES (?, ?)");
ps.setString(1, file.getName());
ps.setBinaryStream(2, fis, file.length());
ps.executeUpdate();
ps.close();
fis.close();

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".