0

我正在做的是查询数据库以构建 CSV 文件。我正在使用这些标题来保存文件:

header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename="export.csv"');

它在我的 WAMP 设置上本地工作,但不在服务器上。我需要更改 PHP 或 Apache 中的设置或其他内容以允许这样做吗?

当我在本地单击链接时,它会下载一个 CSV 文件。当我在实时服务器上做同样的事情时,它只会把我带到生成 CSV 内容的 php 页面。

4

2 回答 2

1

尝试使用application/octet-streamnot text/csv。我不知道为什么您的浏览器在不同的域中表现不同,但更常见的是使用application/octet-stream. 这在RFC2616中有所提及。由于您没有在浏览器中显示它,因此内容类型不必与内容匹配。

于 2012-08-22T13:46:48.653 回答
0

我遇到了和你一样的问题。就我而言,解决方案是我们只需要使用 include 'connection_file.php'; after

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

意味着你的头文件必须是文件的第一条语句。

导出 csv 的完整 PHP 代码是:

<?php

if(isset($_POST['Export'])){

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

      include '../dbcon.php';

      $output = fopen("php://output", "w");
      fputcsv($output, array('id', 'name', 'phone', 'Employee Name', 'district', 'taluka', 'address'));
      $query = "SELECT * from export_buffer ORDER BY id DESC";
      $result = mysqli_query($con, $query);
      while($row = mysqli_fetch_assoc($result))
      {
           fputcsv($output, $row);
      }
      fclose($output);
 }
?>
于 2021-09-01T09:25:24.547 回答