【PHP】指定したファイルをユーザーにダウンロードさせる方法
公開日:
更新日:
カテゴリー: PHP
アクセスしてきたユーザーに指定したファイルをダウンロードさせる方法を説明しています。
指定したファイルをユーザーにダウンロードさせる
指定したファイルをユーザーにダウンロードさせたい場合、そのファイルのURLをハイパーリンクで提示し、ユーザーに「右クリック→リンク先を保存」してもらえればダウンロードさせることが可能です。
しかし、慣れていないユーザー(右クリックから対象ファイルを保存できることを知らないユーザーなど)にとっては不便ですし、そもそもその手順をユーザー側に強いるのはスマートではない気がします。
ヘッダー情報のコンテンツタイプに「application/force-download」を設定
この場合、以下を記述したダウンロード用PHPファイルを作成し、そのファイル(ページ)にユーザーをアクセスさせれば自動的にファイルをダウンロードさせることが可能です。
<?php
//ダウンロードさせたいファイルのパス(サーバー内のファイルまでのパス or Web上のURL)
$file_path = "";
//ダウンロードさせたときのファイル名の指定
$file_name = ""; //***拡張子を忘れないこと!***
//ヘッダーの設定
header('Content-Type: application/force-download');
header('Content-Length: ' . filesize($file_path)); //***ダウンロードさせたいファイルがWeb上のファイルであればここをコメントアウト***
header('Content-disposition: attachment; filename="' . $file_name . '"');
//ファイルの読み込み(出力)
readfile($file_path);
?>
ポイントはヘッダー情報のコンテンツタイプに「application/force-download」を設定することです。
なお、filesize関数はWeb上のファイルのサイズは取得できないので、もしもWeb上のファイルをダウンロードさせたい場合、11行目はコメントアウトしてください(11行目はなくても可)。
あわせて読んでほしい!
コメント
まだコメントはありません。
コメントフォーム


