PHPのheader関数で,httpヘッダーのContent-Disposition attachmentを書き出して,クライアントにファイルをダウンロードさせることができる.
header("Content-type: image/jpeg"); header("Content-Disposition: attachment; filename=hoge.jpg"); header("Content-length: " . filesize("./test.jpg")); readfile("./test.jpg");
ただし,php.iniにあるoutput_bufferingがOFFだと,バイナリがブラウザーに書き出されてしまうので,以下のようにする.
output_buffering = 4096 ;output_buffering = Off