2011-11-04 19 views
7

siguiente código Java se utiliza para descargar un archivo de registro solicitado throgh una aplicación web:El espacio vacío en la edición de nombre de archivo al descargar el archivo

protected HttpServletResponse response; 
.... 

    response.setContentType("application/octet-stream"); 
    String filename = OrgName + ".log"; 
    response.setHeader("Content-Disposition", "attachment; filename= " + filename); 
    OutputStream os = response.getOutputStream(); 
    os.write(getFile()); 
    os.close(); 

problema viene cuando OrgName contiene un espacio como "XYZ Pvt Ltd", en este archivo de caso se descargará con el nombre "Xyz" en lugar de "Xyz Pvt Ltd.log". La parte del nombre después del 1.er espacio se ignora. Tenga en cuenta que el archivo se descarga correctamente, es solo el nombre que no se muestra correctamente. ¿Hay algo que estoy haciendo mal? o es un comportamiento estándar?

Medio Ambiente: Struts 2, Jboss 5.1.0, Mozilla Firefox 3.5.3

+0

Creo que depende del navegador. Acabo de probar en IE (8.0) Chrome y funcionó. – Santosh

Respuesta

13

Creo que he encontrado su problema. Simplemente configure la cadena del nombre del archivo como se cita

response.setHeader("Content-Disposition","attachment; filename=\"" + filename + "\""); 

Esto debería resolver su problema.

+0

Sí, funcionó. Muchas gracias :) –

0

creo que tendría que utilizar una codificación para espacios Usted puede mirar en el codificador de base 64 Apache, recuerdo que consiguen espacios codificada a% 20% y, por lo tanto, al decodificar, podrá recuperar el nombre de archivo con espacios.

+0

Si lo hace, tomará% 20% como parte del nombre del archivo y no lo mostrará como espacio char. – Santosh

Cuestiones relacionadas