Foros del Web » Programación para mayores de 30 ;) » Java »

Problema al guardar archivo mayor de 4KB

Estas en el tema de Problema al guardar archivo mayor de 4KB en el foro de Java en Foros del Web. (SOLUCIONADO) Hola a tod@s! Tengo un problema a la hora de guardar en mi base de datos (campo BLOB) cualquier archivo mayor a 4 KBs. ...
  #1 (permalink)  
Antiguo 27/05/2010, 10:08
 
Fecha de Ingreso: enero-2009
Mensajes: 43
Antigüedad: 15 años, 10 meses
Puntos: 1
Problema al guardar archivo mayor de 4KB (SOLUCIONADO)

(SOLUCIONADO)

Hola a tod@s!

Tengo un problema a la hora de guardar en mi base de datos (campo BLOB) cualquier archivo mayor a 4 KBs. Con los que son menores no tengo ningun problema:

ps.setBinaryStream(2, fileInputstream, (int)miArchivo.getFichero().length());

Trabajo con struts 1.1 y puedo postear mas código si es necesario.

He buscado por foros pero no he encontrado nada. Alguien puede prestarme ayuda?

Gracias de antemano

Última edición por juju84; 15/06/2010 a las 04:12
  #2 (permalink)  
Antiguo 08/06/2010, 02:59
 
Fecha de Ingreso: enero-2009
Mensajes: 43
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Problema al guardar archivo mayor de 4KB

Bueno, hace unas semans que solucione esto, asi quedo:

Código:
public int create(Adjunto adj) throws SQLException, NamingException, FileNotFoundException {
		Connection conn = null;
        PreparedStatement ps = null;

        
        try {
	    conn = Q70ConectorJDBC.getSingleton().getConnection(Constantes.JNDI_DATASOURCE_NAME);
            ps = conn.prepareStatement(SQL_INSERT);
            ps.setString(1, adj.getNumIdentificativo());
            //-------------------------------------
            final byte[] blobData = adj.getFileData(); //Esto es el contenido del fichero previamente guardado en esta variable en "fileData"
            BLOB blob =  BLOB.createTemporary(conn, true, BLOB.DURATION_SESSION);
            OutputStream os = new BufferedOutputStream(blob.setBinaryStream(0));
            os.write(blobData);
            os.flush();
            ps.setBlob(2, blob);
            
            ps.setString(3, adj.getNombreArchivo());
            ps.setString(4, adj.getDescripcion());

            return Utils.transaccionUpdateOracle(conn, ps, dto.getDniUsuario()); //ejecuta el ps
        } catch (Exception e) {
        	e.printStackTrace();
        	return 1;
        }finally {
        	Utils.cerrarConexionEnFinally(conn, ps); //cierra conexiones abiertas
        }
	}
Espero qeu a alguien le sirva en el futuro

Etiquetas: mayor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:41.