
24/10/2007, 05:25
|
| | Fecha de Ingreso: mayo-2007
Mensajes: 15
Antigüedad: 17 años, 10 meses Puntos: 1 | |
Error al recuperar un archivo de la base de datos Buenas tardes
Cuando intento recuperar un archivo me da este error (he visto en el foro alguna respuesta pero no he encontrado solucion :S):
java.lang.IllegalStateException: getOutputStream() ya ha sido llamado para esta respuesta
org.apache.catalina.connector.Response.getWriter(R esponse.java:599)
org.apache.catalina.connector.ResponseFacade.getWr iter(ResponseFacade.java:195)...
El codigo que uso es:
boolean bFound;
String sSQL;
Class oDriver;
PreparedStatement oStmt;
ResultSet oRSet;
String sFileName = null;
InputStream oBlob = null;
int iOffset;
int iReaded;
int iPar;
//StringTokenizer oStrTok;
Connection conn=null;
Class.forName("org.postgresql.Driver");
String driver = "org.postgresql.Driver";
String connectString = "jdbc:postgresql://172.27.4.25:5432/esquema";
String usuarioBD = "user";
String passwordBD = pass";
Class.forName(driver).newInstance();
conn = DriverManager.getConnection(connectString, usuarioBD, passwordBD);
ServletOutputStream oOut = response.getOutputStream();
byte oBuffer[] = new byte[4004];
sSQL = "SELECT nombre, longitud, fichero_contenido FROM regac.regac__archivos where nombre='" + sFileName + "' and tabla_origen='" + origen + "' and id_registro=" + codigo;
oStmt = conn.prepareStatement (sSQL);
oRSet = oStmt.executeQuery();
bFound = oRSet.next();
oRSet.first();
if (bFound) {
sFileName = oRSet.getString(1);
// Send some basic http headers to support binary d/l.
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "inline; filename=\"" + sFileName + "\"");
oBlob = oRSet.getBinaryStream(3);
iOffset = 0;
do {
iReaded = oBlob.read(oBuffer, 0, 4000);
if (iReaded>0)
oOut.write(oBuffer, 0, iReaded);
iOffset += iReaded;
} while (4000==iReaded);
oOut.flush();
oBlob.close();
oBlob = null;
} // fi (bFound)
oRSet.close();
conn.close();
conn = null;
Este mismo codigo lo he probado en otra parte de mi aplicacion y funciona pero a mi no... a ver si me pueden echar una mano.
Muchas gracias |