dynamic文件下载,无需在服务器中保存文件
我正在使用Apache POI库来对多个Excel文件进行一些操作。
我试图下载Excel报告,而不是将其存储在服务器的某个地方。
我正在使用需要将文件input到InputStream
Struts 2,而POI工作簿需要使用OutputStream
将数据写入。
任何帮助将是伟大的
既然你已经知道你需要一个stream结果:
我正在使用Struts 2,它需要将文件input到
InputStream
// With Getter private InputStream inputStream;
而且您已经知道如何使用POI创buildExcel:
POI工作簿需要一个
OutputStream
来写入数据。
public String execute(){ // stuff ByteArrayOutputStream baos = new ByteArrayOutputStream(); // fill the OutputStream with the Excel content workbook.write(baos);
那么唯一缺less的部分是如何将POI的OutputStream转换为Struts2stream结果的InputStream。 这比其他的更容易..:
// Create an Input Stream from the bytes extracted by the OutputStream inputStream = new ByteArrayInputStream(baos.toByteArray()); return SUCCESS; }