问题描述
我们有一个页面正在生成动态内容,并且根据用户的选择输出格式。
例如,如果用户选择了HTML格式,则页面作为HTML页面出现。效果和PDF格式一样好。
挑战在于,如果用户选择Excel格式,而我们要求将Excel文件保存到服务器。
当用户选择Excel格式时,文件以excel格式生成就很好了,但是,不是将其保存到服务器,而是显示“另存为”对话框,但是,正如我提到的,我们需要将文件保存到服务器。
任何输入都将不胜感激。 我们正在使用CF 2016。
代码示例:
<cfsavecontent variable="Page">
<cfif CompareNoCase(FORM.format,"xls")>
<cfsetting enablecfoutputonly="Yes">
<cfheader name="Content-disposition" value="attachment;filename=""#VARIABLES.vcFilename#""">
<cfcontent type="application/vnd.msexcel">
<cfif>
<table><tr><td><cfoutput>#somecontent#</cfoutput></td></tr>...</table>
</cfsavecontent>
<cfif CompareNoCase(FORM.format,"xls")>
<cffile
action="write"
destination="d:\somedir\"
file="#VARIABLES.vcFileName#"
output="#Page#"
nameconflict="overwrite">
<cfif>
解决方法
正如SOS在评论中提到的那样,他删除标题的建议起到了作用。 另外,为了保存excel文件(.xls),在cffile中添加了以下内容: accept =“ application / vnd.ms-excel,application / xls”