通过servlet下载时不会出现完整的文件名

时间:2013-06-17 12:09:55

标签: java servlets download

我有一个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之前打印文件名,这是正确的。没有任何线索如何解决这个问题。请问有谁请检查我在这里做错了什么以及如何纠正这个错误?

2 个答案:

答案 0 :(得分:0)

您是否尝试对文件名进行编码?例如,用“%20”字符序列替换空格?

答案 1 :(得分:0)

如果你的文件中有空格,那么它应该用双引号括起来:

Content-disposition: attachement; filename="file with spaces.whatever"

请注意,双引号对于没有空格的文件名同样有效,因此您也可以一直使用它们