2

我们有一个页面正在生成动态内容,并且格式是根据用户的选择输出的。

例如,如果用户选择了 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>
4

1 回答 1

0

正如 SOS 在评论中提到的那样,他删除标题的建议起到了作用。此外,为了保存 excel 文件 (.xls),在 cffile 中添加了以下内容:accept="application/vnd.ms-excel,application/xls"

于 2020-09-10T13:25:09.990 回答