前の記事 ≪:YUI2.5.0リリース!Flickr風のマルチファイルアップローダーやレイアウト...
次の記事 ≫:2008年2月22日 管理人のブックマーク

訂正: PHPでファイルをDLさせる際のPHPコード例

2008年02月22日-はてなブックマーク

スポンサード リンク
[PR] 英単語を忘却曲線アプリを使って超効率よく記憶する方法

先日、「PHPでファイルをDLさせる際のPHPコード例」というエントリを書きましたが、いくつか問題を持っているようで、アナウンスのため、新規エントリを立てました。

訂正1)
以下のようにしないと大きなファイルの場合はダウンロード失敗するようです。
RFC的には以下が正しいとのこと。
header('Content-Disposition: filename=dl.zip');

header('Content-Disposition: attachment; filename="dl.zip"');

訂正2 )
毎回メモリに読み込むのは良くないということで、以下の訂正
echo file_get_contents('test.zip');

readfile('test.zip');
注) PHP4においてはreadfileでもメモリに読みこむようです^^;(追記)
(echo file_get_contents("test.zip");ではファイルサイズが大きい場合、memoly_limit にも引っかかり正しく動作しないようです)

あと、set_time_limit()関数で途中で突然終了しないようにする必要もありましたね。

詳しくは以下のエントリを参照ください。

参考1)http://d.hatena.ne.jp/odz/20080215/1203099900
参考2) http://d.hatena.ne.jp/cocoiti/20080221#1203611811

更に、ちゃんとしたい場合は、出力バッファリングについても考え、メモリの使い方についても考えたほうがよいそう。他にも突っ込みが入った記事があればアナウンスしていく予定です。

ご連絡頂きました方々、ありがとうございました!

関連の記事検索:PHP, download, php, !GTD 資料(いつか使う)
スポンサード リンク

By.KJ : 2008年02月22日 21:00 livedoor Readerで購読 Twitterに投稿

間違いの指摘をしていただける方はメール、あるいはTwitter/FBでお願いします(クリック)