【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行目はなくても可)。

 

頑張って書いたのでちょろっと読んでほしい!

 

コメント

まだコメントはありません。

コメントフォーム
お名前
コメント