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

[SOLUCIONADO] Abrir y guardar documentos de un servidor en una máquina

Estas en el tema de Abrir y guardar documentos de un servidor en una máquina en el foro de Java en Foros del Web. Hola buenas. Lo que quiero es abrir o guardar un documento pdf que está ubicado en un servidor a mi propia computadora mediante el navegador. ...
  #1 (permalink)  
Antiguo 14/05/2015, 12:42
 
Fecha de Ingreso: diciembre-2010
Mensajes: 5
Antigüedad: 13 años, 4 meses
Puntos: 0
Abrir y guardar documentos de un servidor en una máquina

Hola buenas.

Lo que quiero es abrir o guardar un documento pdf que está ubicado en un servidor a mi propia computadora mediante el navegador.

En principio sería de la siguiente forma:

String nombreArchivo = ruta.substring(ruta.lastIndexOf("\\")+1);

String rutaArchivo = ruta.substring(0, ruta.lastIndexOf("\\"))+"\\";

response.setContentType("APPLICATION/OCTET-STREAM");
response.setHeader("Content-Disposition", "attachment; filename=\"" + nombreArchivo + "\"");

FileInputStream fileInputStream = new FileInputStream(rutaArchivo + nombreArchivo);

while ((int i = fileInputStream.read()) != -1){
out.write(i);
}
fileInputStream.close();

Vale se me abre el cuadro de dialogo para decirle si quiero abrirlo o guardarlo pero si lo abro o lo guardo, el documento me aparece en blanco, no está vacío porque ocupa lo mismo que el original pero en blanco cuando lo abro.
¿Alguna otra solución?
  #2 (permalink)  
Antiguo 15/05/2015, 00:42
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 8 meses
Puntos: 182
Respuesta: Abrir y guardar documentos de un servidor en una máquina

Buenas,

Has probado a poner el tipo MIME correcto?:

response.setContentType("application/pdf");

Un saludo
__________________
If to err is human, then programmers are the most human of us
  #3 (permalink)  
Antiguo 15/05/2015, 03:00
 
Fecha de Ingreso: diciembre-2010
Mensajes: 5
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Abrir y guardar documentos de un servidor en una máquina

Sí lo he probado y sigue igual, si el pdf ocupa 160k, me descarga esos 160 pero al abrir en blanco. Es muy muy raro... Gracias por tu respuesta.
  #4 (permalink)  
Antiguo 15/05/2015, 03:06
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 8 meses
Puntos: 182
Respuesta: Abrir y guardar documentos de un servidor en una máquina

Este seria un ejemplo completo de como hacerlo.

Lo unico que veo que te falta es el contentLengh, pero no se si tendra importancia...

Código Java:
Ver original
  1. File pdfFile = new File(contextPath + pdfFileName);
  2.  
  3.         response.setContentType("application/pdf");
  4.         response.addHeader("Content-Disposition", "attachment; filename=" + pdfFileName);
  5.         response.setContentLength((int) pdfFile.length());
  6.  
  7.         FileInputStream fileInputStream = new FileInputStream(pdfFile);
  8.         OutputStream responseOutputStream = response.getOutputStream();
  9.         int bytes;
  10.         while ((bytes = fileInputStream.read()) != -1) {
  11.             responseOutputStream.write(bytes);
  12.         }

Un saludo
__________________
If to err is human, then programmers are the most human of us
  #5 (permalink)  
Antiguo 15/05/2015, 06:01
 
Fecha de Ingreso: diciembre-2010
Mensajes: 5
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Abrir y guardar documentos de un servidor en una máquina

Hecho!! Mil gracias!! Hacía la función de leer con FileInputStream por eso me lo reconocía pero claro ¿dónde? En ningún sitio para eso OutputStream... Un saludo!!

Etiquetas: documentos, servidor, string
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 18:55.