我爲客戶做了這個。我正在收集許多文件並將其壓縮下載。我將這些zip文件保存在服務器上:
<cfzip action="zip" file="#expandpath('/data/briefcase/')##session.order_id#.zip" source="#expandpath('/data/briefcase/')##session.order_id#" overwrite="yes" storepath="no">
然後我向用戶提供下載文件的鏈接。那樣,如果失敗了,他們總是可以再試一次。
然後我寫了一個計劃任務,每天運行並刪除超過24小時的任何zip文件。
<cfdirectory action="list" directory="#expandpath('/data/briefcase/')#" name="filelist" >
<cfquery name="filter_file" dbtype="query" >
SELECT * from filelist WHERE datelastmodified < #dateadd("h", -48, now())# AND type = 'File'
</cfquery>
<cfquery name="filter_dir" dbtype="query" >
SELECT * from filelist WHERE datelastmodified < #dateadd("h", -48, now())# AND type = 'Dir'
</cfquery>
<cfset path = expandpath('/data/briefcase/')>
<cfoutput query="filter_file">
<cfif fileexists('#directory#/#name#')>
<cffile action="delete" file="#directory#/#name#" >
</cfif>
</cfoutput>
<cfoutput query="filter_dir">
<cfif directoryexists('#directory#/#name#')>
<cfdirectory action="delete" directory="#directory#/#name#" recurse="true" >
</cfif>
</cfoutput>
您的意思是15MB?你在使用共享/託管環境嗎?您使用ColdFusion的什麼Web服務器? – 2013-05-10 16:06:08
您是否曾嘗試將該文件放在網絡空間中,並且沒有使用cfcontent進行下載,就像使用domain.com/test.zip進行測試一樣? – Travis 2013-05-10 16:12:07
你也可以考慮mod_xsendfile如果你使用Apache – Henry 2013-05-10 20:10:19