PHPコーディング

ファイルダウンロードでページのhtmlまで出力

2011年04月26日
PayPalオートメール】のユーザーさんからの連絡でもう1点おかしなところが判明しました。

ファイルダウンロードの部分ですが、どうやらダウンロードファイルだけでなく、ダウンロードを行っているWebページのhtmlまで出力されてしまってます。

私のサーバーでは見られない現象。
サーバーによって少し動きが違うのでしょう。
ダウンロードの前に、キャッシュかhttpをクリアしておかなければいけないのでしょう。
自分のサーバーではクリアしなくても大丈夫だったので、気が付かずそのままになっている、ということです。

ネットで調べてみると、これかな、というものが見当たりました。
PHPマニュアルや当時参考にしたサイトには書かれていなかったので、思いもしませんでした。

対処法は簡単。
【ob_start】関数をDL前にコールするだけ。
そしてDL後に【ob_clean】関数をDL前にコール。

つまり、
 ob_start();
 header('Content-Description: File Transfer');
 header('Content-Type: application/octet-stream');
 header('Content-Disposition: attachment; filename='.basename($DLFilePath));
 header('Content-Transfer-Encoding: binary');
 header('Expires: 0');
 header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
 header('Pragma: public');
 header('Content-Length: ' . filesize($DLFilePath));
 ob_clean();
 flush();
 readfile($DLFilePath);
 clearstatcache();
となります。
これ、どこかのサイトから拝借したんですが、出所が分からなくなってしまいました。
ブラウザのお気に入りにうっかり残し忘れたようです。
コメントの書き込み
コメント
2018年10月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
先月
来月
カテゴリ
検索
関連サイト
プロフィール
【ネットネーム】
みゅー

キャラクター by ツカエルサイト


【趣味】
・プログラミング
・写真
・楽器演奏
・手芸
・日曜大工
・家の中の不便を便利に
・考える
・自然科学
・猫と戯れる
・ジグソーパズル

【仕事】
・派遣社員でSE・PGやっていました。次の良い仕事がみつからないので、ビジネスへ注力しようと思っています。
・経験言語:VB6、VB.NET、PHP、Perl、JAVA、Oracle、SQLServer、PostgreSQL



【名前】
アン(足)

2014年4月22日生まれ 女の子
あだ名は くノ一
普段は普通にしゃべりますが、興奮すると『ニャ』を連発します

【趣味】
・狩
・ご飯を食べる
・ママのお手伝い

【仕事】
ママのビジネスの看板招き猫
ママの代わりにPC入力
仕事中のママの右腕を温める
ママに心配をかける
いろんな事をしでかしてママを退屈させない

RSSフィード
コメント
パトカーってハチワレ
2018-10-15 16:15:11
パトカーってハチワレ
2018-10-15 16:12:42
Tweet