phpでファイルのダウンロード

ウェブ閲覧者からアクセスできないところにあるファイルをダウンロードさせたり、データベース取得したデータをダウンロードさせたりするとか、PHPから動的にファイルを生成してダウンロードさせたい場合は多い。特に管理画面とかではそういう機能をつかうことも多いはず。
ダウンロードに関しては、基本的にプログラムで難しい処理をすることはなく、HTTPレスポンスヘッダで適切なヘッダを返してあげさえすれば、ブラウザがそのようにふるまってくれる。

<?php
header(“Accept-Ranges: none”);
header(“Content-Disposition: attachment; filename=file.txt”);
header(“Content-Transfer-Encoding: binary”);
header(“Content-Length: “. strlen($downloadFile) );
header(“Content-Type: text/octet-stream”);
print($downloadFile);
exit();
?>

とりあえずこれで大丈夫な模様。
Accept-Rangesはbyteを指定すべきかもしれない。
Content-Dispositionはinlineを指定するとおそらくブラウザにインラインで表示されるのだろう。filenameの指定はダウンロードダイアログで表示させるべきファイル名。
・・・そんな感じ。

コメントを残す


守谷市(まちの情報ポータル) 無料アンケートレンタルjpForm.net