我有一个servlet,我已经编写了代码来下载文件。
代码部分如下:
response.setContentType((mimetype != null) ? mimetype
: "application/octet-stream");
response.setHeader("Content-Disposition", "attachment; filename="
+ fileName);
OutputStream os = response.getOutputStream();
try {
//here getFileByte is a method for getting
byte bytes[] = getFileByte(filePath);
os.write(bytes);
}
以上工作正常,但唯一的问题是,当文件名包含多个单词时,它会下载带有第一个单词的文件。
例如: - Filename是“Step by Step.pdf”然后是下载的文件 将是“Step.pdf”。
我甚至尝试在将文件名提供给setHeader method
之前打印文件名,这是正确的。没有任何线索如何解决这个问题。请问有谁请检查我在这里做错了什么以及如何纠正这个错误?
答案 0 :(得分:0)
您是否尝试对文件名进行编码?例如,用“%20”字符序列替换空格?
答案 1 :(得分:0)
如果你的文件中有空格,那么它应该用双引号括起来:
Content-disposition: attachement; filename="file with spaces.whatever"
请注意,双引号对于没有空格的文件名同样有效,因此您也可以一直使用它们