3

在服务器端,我有一个正确的 DOCX 文件。我有 Java 代码来从磁盘读取文件并通过 JSP 刷新它。

当我下载文件时,Office 说文件包含错误。这是我的 JSP 中的代码:

    File dir = new File("c:\\file_test.docx");
    FileInputStream fin = new FileInputStream(dir);
    byte fileContent[] = new byte[(int)dir.length()];
    fin.read(fileContent);
    fin.close();
    response.setHeader("Content-Disposition", "attachment;filename=file_test.docx");
    response.setContentLength((int)dir.length());
    response.setContentType("application/vnd.openxmlformats-officedocument.wordprocessingml.document; charset=utf-8");
    response.getOutputStream().write(fileContent);
    response.getOutputStream().flush();

我发现下载的文件末尾有一个空行。如果我用记事本打开文件并删除空间,文件会正确打开。

我的问题是,在 JSP 中,如何删除二进制文件末尾的空格?我试图在文件中包含除最后一个之外的所有字节,但这不起作用。

如果我删除第 6238 行,Office 会正确打开文件。 用记事本++编辑

如果我删除第 6238 行,Office 会正确打开文件。用记事本++编辑

我需要你的帮助!

4

1 回答 1

3

不小心时 JSP 会输出文本。

以:

%>

没有任何后续,即没有换行符

或者让它成为一个servlet。

于 2013-04-19T15:26:36.947 回答