【发布时间】:2011-09-28 00:47:48
【问题描述】:
我觉得我在这里很明显,但我还是会发布。
我有一个“csv.php”,它创建了一个 csv 文件,简单示例:
// csv.php
$fh = fopen('report.csv', 'w') or die("can't open file");
while ($row = mysql_fetch_row($result)) {
fputcsv($fh, $row);
}
fclose($fh);
在一个单独的页面上,有一个简单的锚元素链接到上面的文件。所以在 home.html 上有:
<a href='report.csv'>Report</a>
一位用户将运行csv.php,另一位用户将转到 home.html 并稍后单击该链接。这很好用,创建了 CSV,数据在那里,并且锚链接通过。
我知道如果我echo输出 CSV,我会添加各种标题,例如:
header("Content-type: application/csv");
header("Content-Disposition: attachment; filename=file.csv");
header("Pragma: no-cache");
header("Expires: 0");
但是如何将这些标题添加到文件report.csv?我认为这是必需的,因为 Firefox 拒绝将 csv 视为可下载文件(单击锚点时,它只是将 csv 输出到浏览器)。
【问题讨论】:
-
如果您运行的是 Apache,您可以使用
.htaccess文件强制下载:css-tricks.com/snippets/htaccess/… -
您也可以使用
mod_cern_meta或mod_headers通过.htaccess捎带这些额外的标头
标签: php file-io csv header download