DBのデータをCSVファイルでダウンロードする機能を作成しています。
DBのデータをカンマ区切りで変数に格納するところまではできましたが、CSVでのダウンロード(ダウンロードダイアログ)ができません。
以下が実際の記述ですが、間違いを指摘いただけないでしょうか。
※$result 出力するデータ全てが,区切りで格納されている
<PHPファイル内>
$size = strlen($result);
$filename = csv_dl.csv;
//csvdll
header("Content-Disposition: inline; filename=\"".basename($filename)."\"");
header("Content-Length: ".$size);
header("Content-Type: application/octet-stream");
以上です。
リターンが遅くなるかもしれませんが、どうかよろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
がると申します。
とりあえず端的に。> $filename = csv_dl.csv;
文字列はクオートしましょう。
$filename = 'csv_dl.csv';
が正しい書式です。
headerですが。RFCによるとMIME typeはtext/csvですので
> header("Content-Type: application/octet-stream");
ではなく
header("Content-Type: text/csv");
になります。
CSVの中身は$resultに入っている感じでしょうか?
だとすると、headerの後に最低限
print $result;
が必要かと思われます。
以上ざっくりとですが。
回答ありがとうございます。
>header("Content-Type: text/csv");
これが原因でした;
ありがとうございます!
>print $result;
は、こちらに書くときに消してしまっていたようで、実際のファイルには記述できていました。
CSVダウンロードとかでいろいろ検索していたのですが、そもそもheaderについて全然勉強していないというか、付け焼刃というか・・・
もっとしっかりと勉強しようと思います。
ありがとうございました!
No.1
- 回答日時:
見た感じでは問題点は無い様に思えます。
特定のブラウザのみお節介機能が動いているのかも知れません。
.csvではない拡張子にしたらダウンロードされるとか。
また、実際に出力されているHTTPヘッダを確認してみるのもいいんじゃないかな?と思います。
回答ありがとうございます。
お礼が遅くて申し訳ありません。
header("Content-Type: application/octet-stream");をheader("Content-Type: text/csv");に変更することでダウンロードが可能になりました!
別のプログラムを作ったときにheader("Content-Type: application/octet-stream");でcsvダウンロードしてたので思いもしませんでした;
>実際に出力されているHTTPヘッダを確認してみるのもいいんじゃないかな?と思います。
そうですね。
勉強のためにも一度1つづつ理解していこうと思います。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- その他(プログラミング・Web制作) データ解析ソフトRでのファイル入力read.csvがエラーになります 7 2022/03/27 22:11
- Excel(エクセル) CSVファイルがカンマ区切りにならない。対処法を教えていただきたいです。 仕事でSMS一斉送信ができ 2 2022/07/01 21:24
- その他(プログラミング・Web制作) python 気象データの取得 2 2023/06/20 23:54
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- その他(プログラミング・Web制作) pythonのpandasのcsvの外部結合(outer_join)した際に列が想定とは異なる事象 1 2022/05/25 13:23
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Excel(エクセル) エクセルでcsvファイルを開いてVBAを使いたい 7 2022/04/28 11:12
- その他(プログラミング・Web制作) Sikulix2.0.5(Jython2.7.3)でcsvを読込WEB検索条件にpasteで文字化け 1 2023/03/31 11:02
- その他(プログラミング・Web制作) Pythonで、データファイルと列名ファイルを1つのファイルにしたいです。 1 2023/07/27 20:29
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【PHP】ダウンロードサイト作成...
-
eclipseでコメントアウトができ...
-
ExcelとPHPについて・・・
-
PHP 検索結果のCSVダウンロード
-
PHP ダウンロードサイトの直リンク
-
ダウンロードファイル名の文字...
-
【BAT(バッチ)ファイル】Web...
-
フォントの色を変えるには?
-
AccessのDoCmd.SendObjectについて
-
.phpと.incファイルの違いはな...
-
FTPコマンドでディレクトリごと...
-
リンク先を隠す方法はないでし...
-
【file_exists】ファイルが存在...
-
セッションのクッキー有効期間...
-
配列とオブジェクトの違い
-
VBAでJPGサイズ変更
-
複数のファイルで同じ定数を定...
-
SHGetSpecialFolderLocation
-
Subversionのリポジトリの削除
-
別ファイルの変数を呼び出した...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PHPで複数ファイルのダウン...
-
ファイル一覧を表示しその画面...
-
zip圧縮の種類について
-
eclipseでコメントアウトができ...
-
ブラウザでExcelをダウンロード...
-
複数ファイルを連続でダウンロード
-
phpでzipファイルダウンロード...
-
libxml2のインストール
-
PHPでファイルのダウンロードす...
-
CSV出力時の”0”表示(電話番号...
-
PHPでダウンロードしたファイル...
-
phpでうまく画像がダウンロード...
-
wgetの使い方
-
Excelファイルをダウンロード
-
サーバー上のファイルをブラウ...
-
日本語ファイル名のアップロー...
-
ファイルのダウンロードのイベ...
-
ダウンロードファイル名の文字...
-
ファイルへの直接アクセスをで...
-
動画をダウンロードするとサイ...
おすすめ情報