読者です 読者をやめる 読者になる 読者になる

サーバー構築メモ

サーバーを構築したりWEBサイトを作ったりした際の個人的な備忘録です

PHP WEBからアクセス出来ない場所のファイルをダウンロードさせる

Fedora Core 4と同時にインストールしたPHP(php.ini未編集)の環境において、WEBからアクセス出来ない場所のファイルをダウンロードさせる方法。

readfile関数を使ってダウンロードさせる

<?php
//ダウンロードファイル(WEBからアクセス出来ない場所)
$download_file = '/var/www/souko/mydata.zip';

if (file_exists($download_file)) {
 //ファイル名とファイルサイズを得る
 $filename = basename($download_file);
 $filesize = filesize($download_file);
 //ダウンロード開始
 header('Content-type: application/octet-stream');
 header('Content-disposition: attachment; filename="'.$filename.'"');
 header('Content-Length: '.$filesize);

 //出力バッファをオフ
 ob_end_flush();
 readfile($download_file);
}
?>

サイズの大きなファイルをダウンロードさせる場合、「ob_end_flush()」を手前に記述することで可能となった。