将mysql数据导出到localhost中的csv下载文件,但不在服务器中

时间:2016-10-08 11:16:29

标签: php mysql csv

我已经在php中使用了下载mysql数据到csv的代码。在localhost中工作正常。当我点击导出按钮时,它以csv格式在localhost下载文件,但是当我在服务器上运行此代码时,当我点击导出按钮它打印数据它没有下载文件。

<form method="post">
<input type="submit" name="export" value="export">
</form>
<?php 
require 'db.php';
if(isset($_POST['export'])){
 $q= mysql_query("select firstname,lastname,email from  tab_Recruiter where status=1");

header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=Userinfo.csv');
header("Pragma: no-cache"); 
header("Expires: 0");

$data = fopen('php://output', 'w');
$first = true;
 while($row = array_filter(mysql_fetch_assoc($q))){
 if ($first) {
        fputcsv($data, array_keys($row));
        $first = false;
    }
   // fputcsv($fp, $row);
fputcsv($data, $row);
}
exit(); 
}

 ?>

1 个答案:

答案 0 :(得分:1)

错误的可能性:

  • 您的配置在服务器上可能有所不同。
  • <?phpheader()应该是该页面中的第一个电话。

此外,请勿立即下载标题。出于调试目的,禁用header()调用并在屏幕中查看输出 - 如果它包含错误。

只有正常工作,才能正确设置标题以强行下载。