java如何设置ContentDisposition标头中包含空格的文件名
我有一段代码:
resp.addHeader("Content-Disposition", "inline; filename=" + fileName);
当文件名为“a_b_c.doc”或“abc.doc”时,下载文件的名称将正确显示。但是,当文件名为“a b c.doc”时,下载文件的名称仅为“a”
我们如何解决这个问题
你可以在下面搜索框中键入要查询的问题!
我有一段代码:
resp.addHeader("Content-Disposition", "inline; filename=" + fileName);
当文件名为“a_b_c.doc”或“abc.doc”时,下载文件的名称将正确显示。但是,当文件名为“a b c.doc”时,下载文件的名称仅为“a”
我们如何解决这个问题
# 1 楼答案
使用引号:
# 2 楼答案
需要执行以下步骤:
+
作为编码空间而不是%20
,因此我们需要手动将其替换为%20
)李>代码:
示例标题:
inline; filename*=UTF-8''Hello%20World.doc; filename=Hello%20World.doc
成功地测试了
# 3 楼答案
如果用
chr(34)
引用文件名,它将起作用:# 4 楼答案
根据the HTTP standard,用双引号包围字符串,并通过在引号或反斜杠之前加一个反斜杠来转义其中的任何引号或反斜杠
这将提示另存为
Very "interesting" file \ files.txt
。请注意,反斜杠的存在并不意味着文件夹,它意味着反斜杠是文件名的一部分(在Linux和其他一些平台上完全有效,但在Windows上不有效)