126

私が取り組んでいるWebアプリケーションでは、ユーザーはCSVファイルへのリンクをクリックできます。mime-typeにヘッダーが設定されていないため、ブラウザーはそれをテキストとしてレンダリングするだけです。このファイルを.csvファイルとして送信して、ユーザーがcalc、excel、gnumericなどで直接開くことができるようにしたいと思います。

header('Content-Type: text/csv');
echo "cell 1, cell 2";

このコードは私のコンピューターでは期待どおりに機能しますが(いつものようではありませんか?)、別のコンピューターでは機能しません。

私のブラウザはFF3.0.1(Linux上)のナイトリービルドです。それが動作しなかったブラウザはIE7とFF3.0(Windows上)でした

私が知らない癖はありますか?

4

4 に答える 4

222

次のような操作を行うことで、ブラウザに[名前を付けて保存...]ダイアログを強制的に開かせることができます。

header('Content-type: text/csv');
header('Content-disposition: attachment;filename=MyVerySpecial.csv');
echo "cell 1, cell 2";

これは、ほとんどの主要なブラウザで機能するはずです。

于 2008-12-29T18:11:25.197 に答える
12

言語やフレームワークを指定していませんが、ファイルのダウンロードには次のヘッダーが使用されます。

"Content-Disposition: attachment; filename=abc.csv"
于 2008-12-29T18:14:22.260 に答える
5

Internet Explorer では、ダウンロードが適切に機能するために、Pragma: public ヘッダーも指定する必要があることがよくあります。

header('Pragma: public');

ちょうど私の2セント..

于 2011-05-04T09:51:45.757 に答える
2

このコードを使用して、csv を含む任意のファイルをエクスポートできます。

// application/octet-stream tells the browser not to try to interpret the file
header('Content-type: application/octet-stream');
header('Content-Length: ' . filesize($data));
header('Content-Disposition: attachment; filename="export.csv"');
于 2013-03-08T10:27:59.583 に答える