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'; です

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 に答える