How to set filename containing spaces in Content-Disposition header
Solution 1:
Use quotes:
resp.addHeader("Content-Disposition", "inline; filename=\"" + fileName + "\"");
Solution 2:
According to the HTTP standard you surround the string with double-quotes, and escape any quotes or backslashes within by preceding them with a single backslash.
Content-Disposition: attachment; filename="Very \"interesting\" file \\ files.txt"
This will prompt to save as Very "interesting" file \ files.txt
. Note that the presence of a backslash does not suggest a folder, it suggests the backslash is part of the filename (which is perfectly valid on Linux and some other platforms, but not on Windows.)