- Home ›
- PEAR入門 ›
- ファイルダウンロード(PEAR::HTTP_Download) ›
- HERE
クライアントへファイルを送信する
HTTP_Downloadクラスのオブジェクトを作成したらクライアントに対してファイルを送信します。HTTP_Downloadクラスで用意されている「send」メソッドを使います。
HTTP_Download::send() mixed HTTP_Download::send (bool [$autoSetContentDisposition = true])
引数: $autoSetContentDisposition trueの場合、HTTP_DOWNLOAD_ATTACHMENTヘッ ダにContent-Disposition がセットされていない場合、自動的にセットし ます 戻り値: 成功時にはTRUE、失敗時にはPEAR_Errorを返します
「send」メソッドを実行する前にHTTP ヘッダがすでに送出されているとエラーとなります。実際の使い方は次のようになります。
require_once("HTTP/Download.php"); $params = array( "file" => "./downloadfile.txt" ); $download = new HTTP_Download($params); $download -> send();
サンプルプログラム
では簡単なサンプルで実際に試してみます。
<?php require_once("HTTP/Download.php"); $params = array( "file" => "./download/star.png" ); $download = new HTTP_Download($params); $download -> send(); ?>
ダウンロード用PHPを呼び出すためのHTMLファイルを用意しました。
<html> <head><title>PHP TEST</title></head> <body> <p>ダウンロードテスト</p> <p> <a href="./pearhttpdownloadtest1.php">ダウンロード</a> </p> </body> </html>
ダウンロードするファイルはPHPファイルが置かれているディレクトリに「download」と言うディレクトリを作成し、その中に「star.png」ファイルを置いておきました。
ではダウンロード用HTMLファイルをWWWサーバに設置しブラウザで見てみると下記のように表示されます。
「ダウンロード」と書かれたリンクをクリックして下さい。
上記のようにダウンロード用ダイアログが表示され、ダウンロードを行うことができます。
staticSendメソッド
単にファイルをダウンロードする場合であれば、HTTP_Downloadクラスのオブジェクトを作成して「send」メソッドを実行する代わりにクラスメソッドである「staticSend」メソッドを呼び出すことでも同様のことが行えます。
HTTP_Download::staticSend() mixed HTTP_Download::staticSend (array $params, bool [$guess = false])
引数: $params パラメータの連想配列 $guess guessContnentType() をコールするかどうかを指定 戻り値: 成功時にはTRUE、失敗時にはPEAR_Errorを返します
引数にはHTTP_Downloadクラスのコンストラクタで指定するパラメータと同等の連想配列を指定します。例えば次のように記述します。
<?php require_once("HTTP/Download.php"); $params = array( "file" => "./download/star.png" ); HTTP_Download::staticSend($params); ?>
単にファイルをダウンロードさせるだけであればどちらを使っても同じです。
( Written by Tatsuo Ikura )