在服务器端,我有一个正确的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会正确打开文件。用Notepad ++编辑
我需要你的帮助!
答案 0 :(得分:3)
JSP在不小心的情况下输出文本。
结束于:
%>
没有任何关注,即没有换行
或者将它变成一个servlet。