とりあえずの備忘録

備忘録(びぼうろく)。主にパソコンやインターネットに関する様々なことを個人的にメモしています。

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()」を手前に記述することで可能となった。