gpt4 book ai didi

java - 如何让用户下载我的文件? (Java、MVC、Excel、POI)

转载 作者:行者123 更新时间:2023-11-30 05:06:49 24 4
gpt4 key购买 nike

我正在使用 Struts2、Spring 和 Hibernate。

我用 POI 编写了一个名为 test.xls 的简单 Excel 文件。当我运行该操作时,它会起作用,因为 test.xls 出现,但在我的 tomcat 文件夹中。

我希望该文件可以在我的 jsp 页面上下载。如何让用户下载 .xls 文件?相反,我该如何称呼这条路径呢?

抱歉,如果答案很明显,我对此很陌生。我知道它可能与 ServletContext 或 HttpServletRequest 有关?

[编辑]由于以下答案,我得到了它的工作。这是工作代码:

private InputStream excelStream;

public String export(){
//Create excelfile
HSSFWorkbook workbook = new HSSFWorkbook();
FileOutputStream file = null;

try{
file = new FileOutputStream("poi-test.xls");
}
catch(IOException e){
e.printStackTrace();
}
//Populate workbook with all the excel stuff
...

//Write to file
ByteArrayOutputStream baos = new ByteArrayOutputStream();
try{
workbook.write(file);
workbook.write(baos);
ByteArrayInputStream bis = new ByteArrayInputStream(baos.toByteArray());
excelStream = bis;
}
catch(IOException e){
e.printStackTrace();
}
return "excel";
}

public InputStream getExcelStream() {
return excelStream;
}


public void setExcelStream(InputStream excelStream) {
this.excelStream = excelStream;
}

在我的 struts 文件中:

        <result name="excel" type="stream">
<param name="contentType">application/vnd.ms-excel</param>
<param name="inputName">excelStream</param>
<param name="contentDisposition">attachment; filename="excelExport.xls"</param>
<param name="bufferSize">1024</param>
</result>

最佳答案

关于java - 如何让用户下载我的文件? (Java、MVC、Excel、POI),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4834446/

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