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

Al generar fichero “txt”, en nombre no es el definido, utiliza el de “action path” de

Estas en el tema de Al generar fichero “txt”, en nombre no es el definido, utiliza el de “action path” de en el foro de Java en Foros del Web. Hola y gracias de antemano: Tengo un jsp en que seleccionamos los valores de los parámetros, con los cuales se realiza una búsqueda en la ...
  #1 (permalink)  
Antiguo 21/10/2004, 04:40
 
Fecha de Ingreso: julio-2003
Mensajes: 3
Antigüedad: 20 años, 9 meses
Puntos: 0
Al generar fichero “txt”, en nombre no es el definido, utiliza el de “action path” de

Hola y gracias de antemano:
Tengo un jsp en que seleccionamos los valores de los parámetros, con los cuales se realiza una búsqueda en la BBDD, y la respuesta se pasa como parámetro a otro jsp, el cual crea un fichero temporal que el usuario puede abrir o guardar, siendo el nombre del fichero definido en el jsp con extensión “txt. Utilizo Struts.
El problema es que funciona correctamente excepto en una da las casuísticas de la selección del primer jsp. Que en vez de utilizar el nombre definido para el fichero, utiliza el definido en el “action path” de struts “*.do”, siendo la información correcta.
El código es el siguiente. El nombre del fichero que muestran las trazas es el correcto. Podéis comprobar que también he probado meter en un String el valor de Content-Disposition, pero el resultado es el mismo.

<%

String nombreFichero=reglamento+strArea+str2ano+mes+".txt ";
System.out.println("A) Nombre del Fichero: " + nombreFichero);

if(error!=null){%>
…..
<%}else{
response.setContentType("txt/plain");
%><%=request.getAttribute("fichero").toString().tr im()%><%
//String contentDisposition = "attachment;filename=" + nombreFichero;
System.out.println("B) Nombre del Fichero: " + nombreFichero);
response.setHeader("Content-Disposition", "attachment;filename=" + nombreFichero);
System.out.println("C) Nombre del Fichero: " + nombreFichero);
response.setHeader("Pragma","no-cache");
}
%>
  #2 (permalink)  
Antiguo 21/10/2004, 13:02
Avatar de hugo777  
Fecha de Ingreso: enero-2002
Ubicación: Lima, Perú
Mensajes: 757
Antigüedad: 22 años, 3 meses
Puntos: 1
Hola, pues para lograr descargar un archivo es:

Código PHP:
response.setContentType("application/octet-string");
response.setHeader("Content-Disposition""attachment; filename=documento.pdf;");

PrintStream salida = new PrintStream(response.getOutputStream());
...
      
salida.write(bytes0i);
...
salida.close(); 
Fíjate también, otros tipos de content type disponibles denpendiendo de lo que quieras descargar.
__________________
Saludos,

H@C..
  #3 (permalink)  
Antiguo 22/10/2004, 04:27
 
Fecha de Ingreso: julio-2003
Mensajes: 3
Antigüedad: 20 años, 9 meses
Puntos: 0
Hay que aumentar el tamaño del buffer

Hola a Todos:
He dado con la solución. El problema es que el tamaño del buffer del response es por defecto de 8192, por lo que hay que aumentarlo. Para realizarlo existe el método setBufferSize(int nuevoTamano), con lo que poniéndolo delante del método setContentType, con el nuevo tamaño, se soluciona el problema. por ejemplo:

response.setBufferSize(65536);
response.setContentType("txt/plain");
%><%=request.getAttribute("fichero").toString().tr im()%><%
response.setHeader("Content-Disposition", "attachment;filename=" + nombreFichero);

No intentéis restablecer al buffer a 8192, ya que cortaría el contenido del txt.


Gracias a todos
  #4 (permalink)  
Antiguo 22/10/2004, 09:19
Avatar de hugo777  
Fecha de Ingreso: enero-2002
Ubicación: Lima, Perú
Mensajes: 757
Antigüedad: 22 años, 3 meses
Puntos: 1
que bueno.
__________________
Saludos,

H@C..
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 11:18.