導入

導入 – HTTP_Download の使用方法

導入

HTTP_Download は HTTP クライアントに 任意のデータを簡単に送出するためのインターフェースを提供します。 HTTP_Download はそれらのデータを変数、 ファイルあるいはストリームリソースから取得することができます。

このパッケージを使用することで、 (隠された)ダウンロードを簡単にハンドリングする事ができます。 「隠された」とは、誰もアクセスできない、という意味です。 たとえば、特別なダウンロードするものを制限したい場合です。 これは、HTTP 圧縮、キャッシング、そして部分的なダウンロード、 レジューム、そして、たとえばデータベースの BLOB からの生データの送信をサポートします。

注意: このパッケージと一緒に php.ini で ob_gzhandler や zlib.output_compression を有効にして使用するべきではありません。 特に、すでに gzip 圧縮されたデータを送出する場合です。

使用例:

以下の例を見てください:

静的な送出:

<?php
1  $params 
= array(
2   'file'                => '../hidden/download.tgz',
3   'contenttype'         => 'application/x-gzip',
4   'contentdisposition'  => array(HTTP_DOWNLOAD_ATTACHMENT'latest.tgz'),
5  );
6
7  $error 
HTTP_Download::staticSend($paramsfalse);
?>

隠されたファイルの送出:

<?php
1  $dl 
= &new HTTP_Download();
2  $dl->setFile('../hidden/download.tgz');
3  $dl->setContentDisposition(HTTP_DOWNLOAD_ATTACHMENT'latest.tgz');
4  // with ext/magic.mime
5  // $dl->guessContentType();
6  // else:
7  $dl->setContentType('application/x-gzip');
8  $dl->send();
?>

任意データの送出:

<?php
1  $dl 
= &new HTTP_Download();
2  $dl->setData($data);
3  $dl->setLastModified($unix_timestamp);
4  $dl->setContentType('application/x-gzip');
5  $dl->setContentDisposition(HTTP_DOWNLOAD_ATTACHMENT'latest.tgz');
6  $dl->send();
?>

帯域幅の制限:

<?php
1  $dl 
= &new HTTP_Download();
2  $dl->setFile('huge_file.bin');
3  $dl->setBufferSize(25 1024); // 25 K
4  $dl->setThrottleDelay(1);   // 1 sec
5  $dl->send();
?>

PostgreSQL LOB の送出:

<?php
1  
require_once 'HTTP/Download.php';
2  require_once 'HTTP/Download/PgLOB.php';
3  $dl = &new HTTP_Download();
4  $dl->setResource(
5    HTTP_Download_PgLOB::open(pg_connect('dbname=lobs'), 12345));
6  $dl->send();
?>
HTTP_Download (Previous) コンストラクタ (Next)
Last updated: Fri, 24 Oct 2014 — Download Documentation
Do you think that something on this page is wrong? Please file a bug report or add a note.
View this page in:

User Notes:

There are no user contributed notes for this page.