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
最新のブログ記事(新着順)
- くちばしフォント【商用可】
- 小説表紙などに使えそうな商用可なフォント「になロマン」
- 筆で書いたようなカナ書体「筆竹仮名B」
- 無料・商用利用可な丸文字ピクセルフォント「マルミーニャM」
- スペースコブラ風フォント
- Next.jsのVercelから商用利用可能なフリー汎用フォント「Geist Font 」
- 無料で使えるいい感じの日本語フォント「しっぽり太ゴシック」
- CSSのみで実装された500種類のローディングアニメーション「CSS Loaders」
- 画像ホバーで様々なエフェクトをかけられる「Izmir」
- CSSのbox-shadowをGUIで生成できる「CSS Box Shadows Generator」
- 過去のエントリ