java - 使用tomcat时如何将文件保存在客户端电脑而不是服务器电脑上

标签 java jsp tomcat

我有一个使用 POI 保存 xlsx 的服务,当我将文件保存到它保存在服务器 pc 上的路径时,它保存在客户端 pc 上。

我程序的部分代码:

public static final String EXCELPATH = "C:\\SAMPLE\\REPORTS\\";

Workbook wb = new XSSFWorkbook();
Sheet sheet = wb.createSheet("Sheet 1");

filepath = EXCELPATH + "TCRKBOS_050020_" + mTodayDate;
FileOutputStream fileOut = new FileOutputStream(filepath + ".csv");
Row row;
Cell cell;

// ********* SAMPLE CELL **************** //
row = sheet.createRow(0);
cell = row.createCell(0);
cell.setCellValue("REPDTE");
cell.setCellStyle(centerHeader1);

cell = row.createCell(1);
cell.setCellValue("BNKCDE");
cell.setCellStyle(centerHeader1);

conn.close();
wb.write(fileOut);
fileOut.flush();
fileOut.close();

最佳答案

您不能在客户端 PC 上保存文件。浏览器管理是否在客户端 PC 上下载文件。

您可以做的是通过 HTTP 发送文件作为您的响应。我假设您在这里使用 Servlet。在您的 servlet 中,如果您希望您的文件下载响应 GET 请求,您可以这样做:

  protected void doGet(HttpServletRequest req, HttpServletResponse resp) 
      throws ServletException, IOException {

        resp.setContentType("text/csv");
        resp.setHeader("Content-disposition", "attachment; filename=TCRKBOS_050020_" + mTodayDate + ".csv");

        try (OutputStream out = resp.getOutputStream()) {
            //todo: write the CSV data to the output stream
        }
    }

关于java - 使用tomcat时如何将文件保存在客户端电脑而不是服务器电脑上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54896398/

相关文章:

for-loop - 是否有用于 jdk 1.6 或 1.7 的 Junit 测试类可用

java - Google App Engine Java servlet 读取 JSP

java - 如何删除 Liferay Social Office 公告中的公告条目常量

java - 如何中断网页的加载?

java - 不使用反射访问类的字段?

java - Flickr Oauth Android

java - 从 java servlet 访问环境变量

session 复制中的 Tomcat 集群

java - 在 JDBCRealm 中使用带有散列密码的 tomcat 基本/摘要身份验证的方法?

java - 如何在java中提取嵌入在JSON文件中的XML