java - form - Cómo establecer el nombre de archivo que contiene espacios en el encabezado Content-Disposition
content-disposition pdf (3)
De acuerdo con el estándar HTTP , rodea la cadena con comillas dobles, y escapa de cualquier comilla o barra invertida dentro precediéndola con una sola barra invertida.
Content-Disposition: attachment; filename="Very /"interesting/" file // files.txt"
Esto le pedirá que guarde el Very "interesting" file / files.txt
. Tenga en cuenta que la presencia de una barra invertida no sugiere una carpeta, sino que sugiere que la barra diagonal inversa es parte del nombre del archivo (que es perfectamente válida en Linux y algunas otras plataformas, pero no en Windows).
Tengo este pedazo de código:
resp.addHeader("Content-Disposition", "inline; filename=" + fileName);
Cuando el nombre del archivo es "a_b_c.doc" o "abc.doc", el nombre del archivo descargado se muestra correctamente. Sin embargo, cuando el nombre del archivo es "abc .doc", el nombre del archivo descargado es solo "a".
¿Cómo podemos solucionar esto?
Use comillas
resp.addHeader("Content-Disposition", "inline; filename=/"" + fileName + "/"");
si cita su nombre de archivo con chr(34)
, funcionará:
resp.addHeader("Content-Disposition", "inline; filename=" + chr(34) + fileName + chr(34));