2009-09-05 3 views
42

私のアプリケーションでは、ユーザーはデータをCSVファイルとしてダウンロードできます。これらはスプレッドシートアプリケーションで開くはずです。 Linuxシステムでは、OpenOfficeで正しく開くように促されます。しかし、私のユーザーの中には、ファイルをダウンロードすると自動的に開くのではなく、アプリケーションを選択するように頼んでいるという不満があります。彼らは別のサイトからcsvをダウンロードすると、Excelで正しく開きます。スプレッドシートアプリケーションで開くcsvファイルのMIMEタイプとして設定するもの

私は設定しています:
MIMEタイプ:テキスト/ CSV
content_disposition:添付ファイルを。 filename.csv

答えて

61

はこれを試してみてください:Windowsの中

Content-Type: text/csv; name="filename.csv" 
Content-Disposition: attachment; filename="filename.csv" 

は、ファイルがダウンロードされ、唯一のファイル名の拡張子は、対応するアプリケーションを決定するために使用された後、MIMEタイプは無視されますブラウザ。

また、CSVが開かれているマシンの地域設定からデフォルトの区切り記号が使用されているため、.CSVファイルをExcelで正しく開くことは困難です。さらに、エンコーディングはファイルの内容やMIMEタイプから決定されないため、ASCII以外の文字は使用できません。

+0

区切り記号(、または;)の選択は、ロケールに依存する可能性があります。カンマ区切りのファイルを開くのに問題は一度もありません。 – pavium

+0

@pavium:そうです、地域設定ではおそらく "リスト区切り"です。 –

+13

Content-Typeの名前パラメータをIMHO無用に設定しています... –

関連する問題