Hola, tengo un codigo que me sube documentos a la base de datos. Luego saco una lista con los documentos subidos y cuando pincho en uno de ellos aparece la ventana para elegir lo que quiero hacer, me funciona bien con todos, menos con los pdf que me dice que el archivo es erroneo y con los txt que me saca el html de la pagina.
he probado mil cosas, este es el código que utilizo:
verVO ver=verf.BuscarVer(id_documento,numero);
Blob plantilla=ver.getPLANTILLA();
InputStream stream = plantilla.getBinaryStream();
//write the file to the file specified
ByteArrayOutputStream bos = new ByteArrayOutputStream ();
int bytesRead = 0;
byte[] buffer = new byte[8192];
while ((bytesRead = stream.read(buffer, 0, 8192)) != -1) {
bos.write(buffer, 0, bytesRead);
}
String path=ver.getNOM_VERSION();
String[]exten=(String[])path.substring(1).split("[.]");
//System.out.println("logitud de extension"+exten.length);
String extension = exten[exten.length-1].toLowerCase() ;
//System.out.println("extension"+extension);
if ((extension.equals("html"))||(extension.equals("ht m"))){
response.setContentType("text/html; charset=ISO-8859-1");
response.setHeader("Content-Disposition", "attachment; filename=\"" + ver.getNOM_VERSION() + "\"");
}else if (extension.equals("txt")){
response.setContentType("text/plain; charset=us-ascii");
response.setHeader("Content-Disposition", "attachment; filename=\"" + ver.getNOM_VERSION() + "\"");
}else if (extension.equals("pdf")){
response.setContentType("application/pdf");
response.setHeader("Content-Disposition", "attachment; filename=\"" + ver.getNOM_VERSION() + "\"");
}else{
response.setContentType("application/msword");
response.setHeader("Content-Disposition", "attachment; filename=\"" + ver.getNOM_VERSION() + "\"");
}
//Send content to Browser
ServletOutputStream servletOut = response.getOutputStream();
servletOut.write(bos.toByteArray());
servletOut.close();
bos.close();
//close the stream
stream.close();