- Home ›
- PEAR入門 ›
- ファイルダウンロード(PEAR::HTTP_Download) ›
- HERE
ファイルの種類を設定する
必須な項目ではありませんが、ダウンロードされるファイルの種類に合わせて適切なContent-typeを設定するようにします。設定するにはHTTP_Downloadクラスのコンストラクタの引数の中の「contenttype」で指定します。
require_once("HTTP/Download.php");
$params = array(
"file" => "./downloadfile.txt",
"contenttype" => "text/plain"
);
$download = new HTTP_Download($params);
$download -> send();
Content-Type(又はMIMEタイプ)として設定できる値は各ファイルの種類に対応するものが定義されています。例えば次のようなものがあります。
| MIMEタイプ | 種類 |
|---|---|
| text/plain | テキスト |
| text/html | HTML文書 |
| text/xml | XML文書 |
| image/gif | GIF画像 |
| image/jpeg | JPEG画像 |
| image/png | PNG画像 |
| audio/midi | MIDI |
| video/mpeg | MPEG |
| application/pdf | PDF文書 |
| application/msword | Word文書 |
| application/excel | Excel文書 |
| application/x-shockwave-flash | Flash |
| application/zip | ZIPアーカイブ |
ダウンロードするファイルの種類に応じて適切なContent-Typeを設定して下さい。
またContent-Typeだけを設定できるメソッドも用意されています。HTTP_Donwloadクラスで用意されている「setContentType」メソッドを使います。
HTTP_Download::setContentType()
mixed HTTP_Download::setContentType (
string [$content_type = 'application/x-octetstream']
)
引数: $content_type Content-Type 戻り値: 成功時にはTRUE、失敗時にはPEAR_Errorを返します
使い方としては次のようになります。
require_once("HTTP/Download.php");
$params = array(
"file" => "./downloadfile.txt"
);
$download = new HTTP_Download($params);
$download -> setContentType("text/plain");
$download -> send();
サンプルプログラム
では簡単なサンプルで実際に試してみます。
<?php
require_once("HTTP/Download.php");
$params = array(
"file" => "./download/sample.txt",
"contenttype" => "text/plain"
);
$download = new HTTP_Download($params);
$download -> send();
?>
ダウンロード用PHPを呼び出すためのHTMLファイルを用意しました。
<html> <head><title>PHP TEST</title></head> <body> <p>ダウンロードテスト</p> <p> <a href="./pearhttpdownloadtest2.php">ダウンロード</a> </p> </body> </html>
ダウンロードするファイルはPHPファイルが置かれているディレクトリに「download」と言うディレクトリを作成し、その中に「sample.txt」ファイルを置いておきました。
ではダウンロード用HTMLファイルをWWWサーバに設置しブラウザで見てみると下記のように表示されます。
「ダウンロード」と書かれたリンクをクリックして下さい。
上記のようにダウンロード用ダイアログが表示され、ダウンロードを行うことができます。
明示的に指定しなくても問題無い場合も多いですが、出来る限りCotent-Typeは設定するようにします。
( Written by Tatsuo Ikura )
PHPBook