gpt4 book ai didi

Java HttpServlet如何下载excel文件

转载 作者:可可西里 更新时间:2023-11-01 17:09:07 24 4
gpt4 key购买 nike

我正在尝试向我的网络应用程序添加一个功能,让用户可以下载一个 excel 文件。

我正在尝试使用以下代码实现此目的:

@Override
public void doPost(HttpServletRequest request, HttpServletResponse response) {
File file = new File("d:/test/test.xls");
response.setContentType("application/xls");
response.addHeader("Content-Disposition", "attachment; filename=test.xls");
response.setContentLength((int) file.length());

try {
FileInputStream fileInputStream = new FileInputStream(file);
OutputStream responseOutputStream = response.getOutputStream();
int bytes;
while ((bytes = fileInputStream.read()) != -1) {
responseOutputStream.write(bytes);
}
fileInputStream.close();
responseOutputStream.close();

} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

我可以使用上面的代码下载 excel 文件,但是文件已损坏。如果我用 Microsoft Excel 打开它,我会弹出一个消息:

“文件格式和扩展名不匹配。文件可能已损坏或不安全”。

Excel 文件是空的。

运行代码后,原始文件 (d:/test/test.xls) 也被损坏。

我做错了什么?

最佳答案

Excel 文件 .xls 的官方 MIME 类型是 application/vnd.ms-excel.xlsxapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheet.

此外,我建议在写入输出流之前执行 response.reset(),在关闭 之前执行 responseOutputStream.flush()(重要) >响应

关于Java HttpServlet如何下载excel文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26611424/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com