web-dev-qa-db-ja.com

CSV MIMEタイプの使用方法

作業中のWebアプリケーションで、ユーザーはCSVファイルへのリンクをクリックできます。 MIMEタイプにはヘッダーが設定されていないため、ブラウザはそれをテキストとしてレンダリングします。このファイルを.csvファイルとして送信したいので、ユーザーはcalc、Excel、gnumericなどで直接開くことができます。

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

このコードは私のコンピューターでは正常に機能しますが(常にそうではありませんか?)、別のコンピューターでは機能しません。

私のブラウザは、FF 3.0.1(Linux上)のナイトリービルドです。動作しなかったブラウザはIE 7およびFF 3.0(Windows上)

気付いていない癖はありますか?

123
theman_on_vista

次のようなことを行うことで、ブラウザに「名前を付けて保存...」ダイアログを強制的に開くことができます。

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

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

216
Sean Bright

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

"Content-Disposition: attachment; filename=abc.csv"
12
gimel

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

header('Pragma: public');

ちょうど私の2セント。

5
4levels

このコードを使用して、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"');
2
Yuri Korolov