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
最新のブログ記事(新着順)
- ライブラリ依存のないモーダルオープンライブラリ「Blendy」
- 個性的な明朝フリーフォント「築豊初号明朝OFL」
- CSSで太陽が差し込むようなアニメーション実装
- 可愛くアニメーションする「beautifully crafted animated icons」
- アイソメトリックなアイコンがアイコンがPNG,SVGでゲットできる「Isoicons」
- ユニークなカタカナフォントtorisippo
- 美しいメッシュグラデーションをCSSで簡単に取得できる「MSHR」
- TailwindCSSなサイトで使える100以上のアニメーションエフェクト「animata」
- SVG形式のテック系企業のロゴを簡単にゲットできる「Svgl」
- 統一感のある色味を一括生成できるツール「The good colors」
- 過去のエントリ