我有一个基于此的代码:
它当前生成一个Excel文件,将其保存在服务器上,然后提供指向excel文件的链接。
以下是 report.cfm 的当前代码:
<cfset todayDate = Now()>
<cfscript>
// Get data from a query
Applicants=QueryExecute("
SELECT *
FROM dbo.applicants
ORDER BY lastname ASC
",[],{datasource="DATABASE"});
// Create a spreadsheet object with sheetname
spObj=spreadsheetNew("Applicants",true);
// Add rows with data from query result. The data start from row 1, col 1. The spreadsheet
// will have column names.
spreadsheetAddrows(spObj,Applicants,1,1,true,[""],true);
dirName=GetDirectoryFromPath(GetCurrentTemplatePath());
// Write spreadsheet to a file
SpreadsheetWrite(spObj,"#dirName##dateformat(todayDate, "yyyymmdd")#_#TimeFormat(todayDate, "HHmmss")#_Applicants.xlsx",true);
//SpreadsheetWrite(spObj,"#dirName##DateFormat(todayDate, "yyyymmdd")#_Applicants.xlsx",true);
</cfscript>
<cfoutput>
<a href="#dateformat(todayDate, "yyyymmdd")#_#TimeFormat(todayDate, "HHmmss")#_Applicants.xlsx">Click to download your Excel File</a>
</cfoutput>
如何更改,以便当用户点击 report.cfm 的链接时,它不会显示&#34;点击下载您的Excel文件&#34; 不再,但会自动触发下载并保留生成的Excel文件的副本吗?
随访:
我提供了一个指向用户的链接 - &#34;生成去年的报告&#34; 这链接到report.cfm,它现在正生成excel文件并向其显示下载链接。
他们不想要额外的点击,所以我正在寻找一个页面自动下载文件的解决方案。
根据Bernhard的建议,我将我的代码修改为
<cfscript>
- original script -
</cfscript>
<cfheader name="Content-Disposition" value="attachment; filename=#dateformat(todayDate, "yyyymmdd")#_#TimeFormat(todayDate, "HHmmss")#_Year2013GradApps.xlsx">
<cfcontent type="application/vnd.msexcel">
我可以强制下载,但Excel无法打开文件&#34;因为文件格式或文件扩展名无效。&#34;