2

我正在尝试允许用户从应用程序下载 CSV 文件。我已经用谷歌搜索了很多,几乎所有冷融合问题我都找不到太多。这是我正在尝试的:

<cfset yourFileName="\\10.21.2.187\devintranet\WebSite\Audit_Web\AuditWeb\temp\file.csv">
<cffile action="read" file="#yourFileName#" variable="myFile">

<cfheader name="content-disposition" value="attachment; filename=#listLast(myFile, "\")# />
<cfcontent type="application/msexcel" variable="#myFile#" reset="true" />

这是正确的文件路径:

temp/file.csv

这是文件名:

现在我收到错误:403 被禁止。我不知道什么是错的,什么是对的。我只是使用我在网上找到的代码。任何建议都将不胜感激。

4

1 回答 1

4

确定要下载的文件:

<cfset yourFileName="\\10.21.2.187\devintranet\WebSite\Audit_Web\AuditWeb\temp\file.csv">

将文件读入 CF 变量:

<cffile action="read" file="#yourFileName#" variable="myFile">

使用正确的 mime 类型和文件名将文件发送到浏览器:

<cfheader name="content-disposition" value="attachment; filename=#listLast(myFile, '\')#" />
<cfcontent type="application/msexcel" variable="#myFile#" reset="true" />

那么就不需要了<cflocation>,一旦文件被推送到浏览器,请求就会结束。

更新:根据CFDocstext/csv是不允许的type。它应该允许任何适当的 mime 类型,显然它不允许。检查该链接以获取type.

更新2: text/csv很好。的value属性cfheader未正确关闭。必须更改listLast()使用单引号并添加结束双引号。

于 2020-02-19T22:08:45.343 回答