【问题标题】:Coldfusion download file冷融合下载文件
【发布时间】:2017-03-09 22:54:11
【问题描述】:

我想通过调用coldfusion函数的ajax get请求下载文件,但问题是在开发工具的“网络”选项卡中我可以“看到”内容,但它没有下载。

这是我存储在cfc中的coldfusion函数:

<cffunction name="download" access="remote" output="true">
    <cfset file_name = "Test.xlsx">
    <cfheader name='Content-Disposition' value='attachment; filename=#file_name#' charset='utf-8'> 
    <cfcontent type="application/msexcel" file="#file_name#" deletefile="false">
</cffunction>

这是我的 ajax 调用:

<script>
        $.ajax({
            method: "GET",
            url: "ses/dev.cfc",
            data: {
                method: 'download'
            },
            cache: false,
            success: function(data) {
                console.log("Downloaded");
            },
            error: 'Not downloaded'
        });
    </script>

这是我的结果: http://imgur.com/FmPhlKx

【问题讨论】:

  • 如果你想让它把文件下载到你的电脑上,你需要向服务器发出 HTTP GET 请求,而不是 XMLHttpRequest (Ajax) GET。
  • 我认为您需要将其作为 .cfm 而不是作为 .cfc 中的函数来执行。
  • 您为什么要通过在方程式中添加 javascript 来使简单的文件下载问题复杂化?
  • @DanBracuk 请问你会怎么做?
  • 我会有一个 Cold Fusion 页面 (.cfm),其中最后两行代码是 &lt;cfheader&gt;&lt;cfcontent&gt; 标签。

标签: javascript ajax coldfusion cfml coldfusion-11


【解决方案1】:

我认为您应该在 Ajax 中删除下载功能,并将其移至不同的进程...也许在不同的 URL 上调用它,如下所示:

http://websiteurl.com/download.php?file=xxxxx&amp;sec_string=xxxxxx

我希望这是有道理的:)

【讨论】:

  • 是的,这有效,但我仍然不知道为什么它不起作用
猜你喜欢
  • 1970-01-01
  • 2011-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-13
  • 2011-01-15
  • 2023-03-29
相关资源
最近更新 更多