2013-09-05 7 views

Odpowiedz

51

Stosować cytaty:

resp.addHeader("Content-Disposition", "inline; filename=\"" + fileName + "\""); 
+1

co jeśli nazwa pliku ma " (nie jest to możliwe w oknach, ale pliki linuksowe mogą mieć "" w nazwie). – Bor691

+0

nie działa dla mnie: S –

+2

To jest poprawna metoda (nazwa pliku w cudzysłowie) zgodnie ze specyfikacją HTTP 1.1: https: //www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1 – betatester07

0

jeśli zacytować swoją nazwę z chr(34) będzie działać:

resp.addHeader("Content-Disposition", "inline; filename=" + chr(34) + fileName + chr(34)); 
+1

'chr (34)' będzie cytatem ... –

4

Według the HTTP standard otoczyć ciąg z cudzysłowami i uciec żadnych cytatów lub backslashy wewnątrz, poprzedzając je pojedynczym odwróconym ukośnikiem.

Content-Disposition: attachment; filename="Very \"interesting\" file \\ files.txt" 

to poprosi, aby zapisać jako Very "interesting" file \ files.txt. Zauważ, że obecność ukośnika odwrotnego nie sugeruje folderu, sugeruje, że ukośnik odwrotny jest częścią nazwy pliku (co jest całkowicie poprawne w systemie Linux i na niektórych innych platformach, ale nie w systemie Windows).