如何更改直接fopen输出的文件名?

时间:2014-10-23 09:04:39

标签: php csv

我正在使用此脚本显示csv文件:

if (isset($_GET['csv'])) {
    header('Content-Type: text/csv; charset=utf-8');
    $out = fopen('php://output', 'w');
    foreach ($dataArray as $k => $v) {
        fputcsv($out, $v);
    }
    fclose($out);
    exit();
}

这个Javascript打开csv直接下载:

<a href="#" class="export" onclick="window.open(window.location.pathname + window.location.search + \'&csv=1\');">

现在我想将文件名更改为:

subscriptions_2014_10_23.csv

有人知道怎么做吗?

3 个答案:

答案 0 :(得分:1)

您需要添加另一个指定文件名的标头。然后输入一些日期函数添加到:

$filename = 'subscriptions_' . date('Y_m_d') . '.csv';
header('Content-Disposition: attachment; filename="' . $filename . '"');

答案 1 :(得分:0)

再添加一个header

header('Content-Disposition: attachment; filename=subscriptions_2014_10_23.csv');

答案 2 :(得分:-1)

也许您应该使用标题文件名:

header('Content-Disposition: attachment; subscriptions_2014_10_23.csv"');