PHPでファイルをDLさせる際のPHPコード例
2008年02月14日-
スポンサード リンク
2008/2/22: sotarok様より、連絡がありコードを一部訂正
参考1)http://d.hatena.ne.jp/odz/20080215/1203099900
参考2) http://d.hatena.ne.jp/cocoiti/20080221#1203611811
通常、PHPでファイルをダウンロードさせるとすると、次のようにシンプルにかけます。
<?php
header('Content-Type: application/octet-stream');
readfile("dl.zip");
?>
が、これだと、ダウンロード時に、保存名がアクセスしたphpでのファイル名になってしまいます(例えば、dl.php)。
そこで次のように Content-Disposition でファイル名をブラウザに通知することで、dl.zip としてダウンロードさせられます
<?php
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="dl.zip"');
readfile("dl.zip");
?>
ファイルサイズが分からないとブラウザの進捗表示が出来ないので、更に Content-length を付けます。
<?php
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="dl.zip"');
header('Content-Length: '.filesize('dl.zip'));
readfile("dl.zip");
?>

進捗も表示!
ファイルのダウンロードのさせ方はここまで。
で、先日紹介した、「使えるPHP等のコードスニペット(16進カラーを反転など)が一杯のサイト」で掲載されていた、「File download with speed limit」を参考にすれば、更にファイルのダウンロードに速度制限を設けることも出来るみたい。
単純にfopen してsleepしながらflushしているだけみたいですが。
何らかの理由でダウンロード速度を制限したい場合に参考にできますね。
関連エントリ
スポンサード リンク
Advertisements
SITE PROFILE
最新のブログ記事(新着順)
- ブラウザ上でPDFを表示するJSライブラリ「PDF.js」
- 次世代の検索フォームを作成するjQuery&CSS3サンプル
- 2012年2月9日 管理人のブックマーク
- faviconを書き換えてfacebookの通知っぽくしてくれるfaviconアラート実装ライブラリ「Tinycon」
- ページめくりを実現するためのjQueryプラグイン集
- 2012年2月8日 管理人のブックマーク
- HTMLをアップするとCSSのスケルトンを自動生成してくれる「bearcss」
- HTML5で綺麗でインタラクティブなグラフが描けるライブラリ「Flotr2」
- 2012年2月7日 管理人のブックマーク
- 商用利用可能なバレンタインデーのアイコンセット10
- 過去のエントリ



















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




