0

我有一个 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);
}

以上工作正常,但唯一的问题是当文件名包含多个单词时,它会下载第一个单词的文件。

例如:- 文件名是“Step by Step.pdf”,那么下载的文件就是“Step.pdf”。

我什至尝试在给它之前打印文件名setHeader method,它是正确的。不知道如何解决这个问题。谁能检查我在这里做错了什么以及如何纠正这个错误?

4

2 回答 2

0

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

于 2013-06-17T12:12:11.987 回答
0

如果您的文件中有空格,则应将其括在双引号中:

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

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

于 2013-06-17T12:15:52.093 回答