gpt4 book ai didi

java - 使用java将下载保存到浏览器下载而不是系统下载

转载 作者:行者123 更新时间:2023-12-02 11:54:19 25 4
gpt4 key购买 nike

我的 Eclipse 中有一个动态 Web 项目,它采用包含数据的 Excel 工作表并将其放入数据库中。然后,我从数据库创建了一个 Web 应用程序,供用户添加、编辑、删除和查看该数据库中曾经位于电子表格上的数据。

网络应用程序获取用户创建、编辑、删除的数据,并根据用户的请求创建 Excel 电子表格。我创建了一个写入 Excel 电子表格的链接,但如何将新电子表格下载到用户计算机。

因此,如果他们点击下载链接,则会转到浏览器下载,例如他们正在使用的浏览器(例如 Chrome),文件会转到屏幕底部的下载栏。我一直在研究,但我迷失了。我正在使用java:

try{
File file = new File("C:\\eclipseworkspace\\spreatdsheet.xlsx");

if(file.delete()){
System.out.println(file.getName() + " will be overwritten, created");
}else{
System.out.println(file.getName() + " does not exist. Newly created.");
}
}catch(Exception e){
e.printStackTrace();
}

FileOutputStream out = new FileOutputStream(newFile("C:\\eclipseworkspace\\spreatdsheet.xlsx"));

workbook.write(out);
out.close();
workbook.close();
System.out.println("spreadsheet .xlsx was created");

这是我的 java 代码的一部分,它导入 Apache POI 类,并将其写入 eclipse 中的动态 Web 项目目录。

我必须做什么或需要从哪里开始才能将目录中的电子表格下载到用户浏览器下载中,例如 chrome 浏览器中的 chrome://downloads/

最佳答案

我假设您正在与您在下载中看到文件的同一台计算机上测试此 Web 应用程序。

您无法通过网络应用程序在客户端计算机上编写任何内容。您提供的示例代码是在服务器文件系统上写入一个文件。不是客户端。

您必须做的是将文件内容写入 http 响应中。如果您正在使用 servlet,则类似于

public void doGet(HttpServletRequest request, HttpServletResponse response) {
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); // Instrcut the browser of what he will receive
response.getOutputStream().write(/* your excel*/);
}

这样,浏览器就会将其下载到他的默认文件夹中(您无法更改)

关于java - 使用java将下载保存到浏览器下载而不是系统下载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47702550/

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