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しているだけみたいですが。
何らかの理由でダウンロード速度を制限したい場合に参考にできますね。
関連エントリ
スポンサード リンク
投稿者 KJ : 2008年02月14日 10:09
|
![]()
間違いの指摘をしていただける方はメールでお願いします
最新のブログ記事
- Facebook風のサムネイル付きサジェストボックスを実装するサンプル
- 2009年7月3日 管理人のブックマーク
- PHPとCSSで動的に綺麗なパーセンテージグラフを描画サンプル
- 普通の写真をすばらしいアートにするためのPhotoshopチュートリアル集
- シマシマの見やすいテーブルを作成するMooToolsプラグイン「ZebraTable」
- 2009年7月2日 管理人のブックマーク
- 「フォローしてね」を表すTwitterアイコン集
- シンプルなTwitter検索を行うためのPHPスクリプト
- PHPのcURLを使ってできる便利なサンプル集
- 2009年7月1日 管理人のブックマーク
- iPhone3.0の緯度経度APIで移動履歴を地図描画するサンプル





















