【发布时间】:2014-01-27 12:14:03
【问题描述】:
我有一个生成多个电子表格对象的 cfm 页面,现在如果我尝试发送文件以供下载,只有最后生成的电子表格文件会作为下载文件发送。
有没有办法将这些文件写入 zip 并将 zip 文件作为下载文件发送?
这是我现有的逻辑:
for(VARIABLES.fileNumber = 0; VARIABLES.fileNumber < VARIABLES.maxFiles; VARIABLES.fileNumber = VARIABLES.fileNumber + 1)
{
/* code to create Spreadsheet here */
VARIABLES.context = getPageContext();
VARIABLES.context.setFlushOutput(true);
VARIABLES.response = VARIABLES.context.getResponse().getResponse();
VARIABLES.response.reset();
VARIABLES.response.setContentType("application/msexcel");
VARIABLES.response.setContentLength(len(SpreadsheetReadBinary(VARIABLES.suppItemSpreadSheetObj)));
VARIABLES.response.setHeader("Content-Disposition","attachment;filename=MyComplianceStatusFile#VARIABLES.fileNumber#Of#VARIABLES.maxFiles#.xls");
VARIABLES.out = response.getOutputStream();
VARIABLES.out.write(SpreadsheetReadBinary(VARIABLES.suppItemSpreadSheetObj));
VARIABLES.out.flush();
VARIABLES.out.close();
}
现在,这样我只能得到最后一个生成的电子表格。有没有办法让所有生成的电子表格一个一个或者一个 zip 文件?
【问题讨论】:
-
顺便说一句,下载单个文件的方法在 .jsp 中更为典型。 CF 中的标准(更简单)方法是使用
cfcontent。如果您是 CF 新手,我建议您先查看 tags by function 和 functions by category 视图,了解此类问题。
标签: coldfusion coldfusion-9 coldfusion-8 coldfusion-10