我已经在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();
}
?>
答案 0 :(得分:1)
错误的可能性:
<?php
和header()
应该是该页面中的第一个电话。此外,请勿立即下载标题。出于调试目的,禁用header()调用并在屏幕中查看输出 - 如果它包含错误。
只有正常工作,才能正确设置标题以强行下载。