Java 从服务器下载时xlsx文件损坏

Java 从服务器下载时xlsx文件损坏,java,servlets,Java,Servlets,各位,情况如下: 确认光盘上的xlsx文件正常。 我从服务器复制了文件,可以毫无问题地打开 使用FileInputStream和BufferedInputStream处理客户端下载功能。 下载功能,我的意思是用户可以通过点击超链接下载文件,并对使用FileInputStream和BufferedInputStream的java类进行servelet调用 Mime类型已正确设置为application/vnd.openxmlformats-officedocument.spreadsheetml.

各位,情况如下:

  • 确认光盘上的xlsx文件正常。 我从服务器复制了文件,可以毫无问题地打开

  • 使用FileInputStream和BufferedInputStream处理客户端下载功能。 下载功能,我的意思是用户可以通过点击超链接下载文件,并对使用FileInputStream和BufferedInputStream的java类进行servelet调用

  • Mime类型已正确设置为application/vnd.openxmlformats-officedocument.spreadsheetml.shee

  • 成功下载文件后,在尝试使用office 2003打开此xlsx文件时,将出现“转换失败”错误

    有什么想法吗


    谢谢

    有些字节不属于HTTP响应正文,或者只是缺少


    根据目前提供的信息,不可能指出实际的根本原因。您必须检查从本地磁盘文件系统写入HTTP响应正文的字节是否正确。

    谢谢。我只是检查了输入和输出的大小。他们匹配,你就是那个男人!我只是用记事本打开这两个文件。你知道吗?损坏的XLSX文件在内容中添加了两行空行。不知道这是从哪里来的…所以,您实际上是使用JSP而不是Servlet来提供文件?实际上,我在JSP页面上调用下载Java函数。啊,好的。众所周知,JSP文件中Scriptlet外部的空白很容易导致此类问题。那么,在请求-响应链的某个地方,您正在执行
    响应.getWriter().println()
    或其他操作。或者您实际上使用了一些
    读写器
    而不是
    输入流/输出流
    来传输文件。