【问题标题】:ColdFusion: force browser to download file and still load the pageColdFusion:强制浏览器下载文件并仍然加载页面
【发布时间】:2012-10-12 12:05:36
【问题描述】:

我有一个test.cfm,我在其中动态构建了一个 pdf 文件并使用<cfheader><cfcontent> 将其输出到浏览器,但我仍然希望页面加载并显示“test html”:

<CFFILE action="readbinary" file="#expandpath("./test.cfm")#" variable="testcontent" />
<CFHEADER name="Content-Disposition" value="attachment; filename=""test.txt""; charset=utf-8">
<CFCONTENT type="text/plain" reset="yes" variable="#testcontent#">

<CFCONTENT type="text/html" reset="yes" /><!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Testdoc</title>
</head>
<body>test html</body>
</html>

(输出文件本身只是示例)

有没有办法做到这一点?

【问题讨论】:

  • 加载页面,然后有一个 HTML 元重定向到下载?
  • 这是个好主意!谢谢@PeterBoughton

标签: coldfusion http-headers mime-types attachment


【解决方案1】:

你不能触发下载后发生的事情,但你可以反过来做——加载你想要的页面,然后使用 HTML 元重定向重定向到要下载的文件:

<meta http-equiv="refresh" content="5; url=http://domain.com/path/to/download" />

(如有必要,您可以使用cfhtmlhead 将其插入现有 HTML 页面的相关部分。)

5 是等待的秒数 - 设置为 0 将立即重定向。 (与其他页面一起使用时,使用即时重定向可能会导致后退按钮出现问题;但对于下载来说应该不是问题。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-11
    • 2011-09-25
    • 1970-01-01
    • 1970-01-01
    • 2010-12-27
    • 2018-05-15
    相关资源
    最近更新 更多