使用tomcat时如何在客户端PC而非服务器PC上保存文件

时间:2019-02-27 00:52:00

标签: 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();

1 个答案:

答案 0 :(得分:1)

您无法在客户端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
        }
    }