- Home ›
- PEAR入門 ›
- ファイルダウンロード(PEAR::HTTP_Download) ›
- HERE
ダウンロードするデータを動的に作成する
今まではダウンロードするファイルをファイル名で指定してきました。ここではクライアントに送信したいデータを直接作成して送信する方法を確認します。HTTP_Downloadクラスのコンストラクタの引数の中の「data」で指定します。
require_once("HTTP/Download.php"); $params = array( "contenttype" => "text/plain", "contentdisposition" => array(HTTP_DOWNLOAD_ATTACHMENT, "filename"), "data" => "download data text" ); $download = new HTTP_Download($params); $download -> send();
今までダウンロードファイル名を指定してきましたが、代わりにクライアントに送信したいデータを直接「data」に設定しています。
また送信するデータを設定するメソッドも用意されています。HTTP_Donwloadクラスで用意されている「setData」メソッドを使います。
HTTP_Download::setData() void HTTP_Download::setData(mixed [$data = null])
引数: $data 送出する文字列と同様の任意データ、もしくはクリアするための null
引数にはクライアントに送出するデータを設定します。
使い方としては次のようになります。
require_once("HTTP/Download.php"); $params = array( "contenttype" => "text/plain", "contentdisposition" => array(HTTP_DOWNLOAD_ATTACHMENT, "filename") ); $download = new HTTP_Download($params); $download -> setData("download data text"); $download -> send();
サンプルプログラム
では簡単なサンプルで実際に試してみます。
<?php require_once("HTTP/Download.php"); $params = array( "contenttype" => "text/plain", "contentdisposition" => array(HTTP_DOWNLOAD_ATTACHMENT, "pass.txt") ); $download = new HTTP_Download($params); $download -> setData("あなたのパスワードは xxxx です"); $download -> send(); ?>
ダウンロード用PHPを呼び出すためのHTMLファイルを用意しました。
<html> <head><title>PHP TEST</title></head> <body> <p>ダウンロードテスト</p> <p> <a href="./pearhttpdownloadtest6.php">ダウンロード</a> </p> </body> </html>
ではダウンロード用HTMLファイルをWWWサーバに設置しブラウザで見てみると下記のように表示されます。
「ダウンロード」と書かれたリンクをクリックして下さい。
ファイル名を指定した場合と同じようにダウンロードダイアログが表示されます。ではダウンロードされたファイルをテキストエディタで開いて下さい。
ダウンロード時に作成したデータをいったんファイルに保存せずに直接ファイルとしてクライアントへ送信することが出来ました。
( Written by Tatsuo Ikura )