导出的文件保存在服务器上。它应该在系统中下载而不保存在服务器上

时间:2016-06-04 09:43:05

标签: php wordpress csv fwrite fclose

我有PHP脚本将数据库中的记录导出到CSV文件。当我单击导出按钮时,它会在服务器上创建一个CSV文件(当前位置)。所有数据都正确显示在CSV文件中,但不应保存在服务器上,应在系统中下载。这个问题可能重复,但我没有找到答案。

CSV文件中导出数据的代码。

$monthData  = mysql_query($query, $conn);
$columns_total = mysql_num_fields($monthData);

$output = "";

for ($i = 2; $i < $columns_total; $i++) {
    $heading = mysql_field_name($monthData,$i);
    $output .= '"'.$heading.'",';
}
$output .="\n";

while ($row = mysql_fetch_array($monthData)) {
    for ($i = 2; $i < $columns_total; $i++) {
        $output .='"'.$row["$i"].'",';
    }
    $output .="\n";
}
$fileName = $month.'Data.csv';
$csvfile = fopen($fileName, "w") or die("Unable to open file!");
fwrite($csvfile, $output);

fclose($csvfile);

根据我的研究或知识,我认为需要添加一些标题(指定fileName,fileSize和许多其他标题)。我不太了解它,为什么以及在哪里需要添加它。

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

在这里,您可以回答您的问题。

<?php
header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=testdata.csv');

// create a file pointer connected to the output stream
$output = fopen('php://output', 'w');

// fetch the data
$row = array(array('row1val','row1val','row1val'),array('row2val','row2val','row2val')); 

// loop over the rows, outputting them
foreach($row as $fields):
fputcsv($output, $fields);
endforeach;

fclose($output);

?>

由于