PHPでクリックした時にファイルをダウンロードさせる設定
category : Webプログラミング ;
右クリックで「ファイル保存」しなくても、クリックするだけでブラウザのダウンロードウィンドウが開いてダウンロードが始まるようにするPHP。
普通にファイルにリンクを張ると、ブラウザによってはウィンドウ内でファイルを開いてしまうことがあるので・・・。
csvとか、動画とかのダウンロードで使うことが多いかな。
sample.phpを、download.htmlからAタグやフォームのボタンで読み込む。
実際にダウンロードさせるファイルは、sample.phpにパスを記載する。
■ download.html
<a href="sample.php">sample.csvをダウンロードする</a>
<br /><br />
フォームボタンの場合<br />
<form><input type="button" value="sample.csvをダウンロードする" onClick="location.href='sample.php'"></form>
■ sample.php
$file = "sample.csv";
$file_length = filesize($file);
header("Content-Disposition: attachment; filename=$file");
header("Content-Length:$file_length");
header("Content-Type: application/octet-stream");
readfile ($file);
?>
■動作環境
Windows:Internet Explorer 6.0、Internet Explorer 7.0、FireFox 2.0
Mac OS:Safari 2.0、FireFox 2.0
※サーバサイドのシステムなので、ブラウザはあまり関係ないかもしれないけど一応・・・。
■参考サイト
PHPでファイルをダウンロードするには?
http://chaichan.web.infoseek.co.jp/qa5500/qa5931.htm
ファイルのダウンロード
http://php.nekosuke.com/000022.html
[PHP]ファイル圧縮とダウンロード
http://blog.fmono.sub.jp/?eid=346000
任意のファイルをダウンロードさせる - readfile()
http://www.spencernetwork.org/memo/tips-5.php
PHPでファイルをダウンロードさせるには
http://jamz.jp/tech/2006/11/how-to-download-after-display-thanks-page.html
