ファイルの種類を設定する

広告

必須な項目ではありませんが、ダウンロードされるファイルの種類に合わせて適切な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/htmlHTML文書
text/xmlXML文書
image/gifGIF画像
image/jpegJPEG画像
image/pngPNG画像
audio/midiMIDI
video/mpegMPEG
application/pdfPDF文書
application/mswordWord文書
application/excelExcel文書
application/x-shockwave-flashFlash
application/zipZIPアーカイブ

ダウンロードするファイルの種類に応じて適切なContent-Typeを設定して下さい。

またContent-Typeだけを設定できるメソッドも用意されています。HTTP_Donwloadクラスで用意されている「setContentType」メソッドを使います。

引数:
  $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();

サンプルプログラム

では簡単なサンプルで実際に試してみます。

sample5-1.php

<?php
require_once("HTTP/Download.php");

$params = array(
  "file" => "./download/sample.txt",
  "contenttype" => "text/plain"
);
$download = new HTTP_Download($params);
$download -> send();

?>

ダウンロード用PHPを呼び出すためのHTMLファイルを用意しました。

download5-1.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サーバに設置しブラウザで見てみると下記のように表示されます。

Content-Typeの設定

「ダウンロード」と書かれたリンクをクリックして下さい。

Content-Typeの設定

上記のようにダウンロード用ダイアログが表示され、ダウンロードを行うことができます。

明示的に指定しなくても問題無い場合も多いですが、出来る限りCotent-Typeは設定するようにします。

( Written by Tatsuo Ikura )