PearでFileのダウンロード

更新日2010-08-25 (水) 15:46:44

クラスの確認

Archive_Tar,Archive_Zip,HTTP_Download,HTTP_Headerあたりが必要なようだ

HTTP_DownloadとArchive_Zipをインストールしてみる

# pear list
Installed packages, channel pear.php.net:
=========================================
Package          Version State
Archive_Tar      1.3.7   stable
Archive_Zip      0.1.1   beta
Console_Getopt   1.2.3   stable
HTTP             1.4.1   stable
HTTP_Download    1.1.3   stable
HTTP_Header      1.2.0   stable
MIME_Type        1.2.0   stable
PEAR             1.9.1   stable
Structures_Graph 1.0.3   stable
System_Command   1.0.6   stable
XML_Util         1.2.1   stable

指定ファイルをダウンロード

以下のファイルをリンクしてそこをアクセスする。

  • DLファイル名 /home/okada/080621_Festival/DSCN0964.JPG
  • DLされた時のファイル名 download.jpg

指定パスは必ずしもWebアクセス内である必要はない

download.php

<?php

require_once("HTTP/Download.php"); 

$filename="/home/okada/080621_Festival/DSCN0964.JPG";

$params=array(
        "file"=>$filename,
        "contenttype"=>"image/jpeg",
        "contentdisposition"=>array(HTTP_DOWNLOAD_ATTACHMENT, "download.jpg"),
);


HTTP_Download::staticSend($params);
?>

指定ディレクトリを指定してそのフォルダをすべて圧縮DL 1

こちらを推奨とあるページがあった

<?php

require_once("HTTP/Download/Archive.php");

HTTP_Download_Archive::send(
  "download.zip",     // DLファイル名
  array("./temp/"),   // DLファイルが格納されているディレクトリ
  HTTP_DOWNLOAD_ZIP,  // 圧縮方式
  "",                 // DL後解凍時前につけるパス
  "/temp/"            // DL後解凍時削除するパス この例ではないとtemp/(ファイル名になる。ある場合はtemp/がつかない
);

?>
定数圧縮方式
HTTP_DOWNLOAD_ZIPzip
HTTP_DOWNLOAD_TARtar
HTTP_DOWNLOAD_TGZtgz
HTTP_DOWNLOAD_BZ2bz2

指定ディレクトリを指定してそのフォルダをすべて圧縮DL 2

<?php

require_once("HTTP/Download.php");

HTTP_Download::sendArchive(
  "download.zip",
  array("./temp/"),
  HTTP_DOWNLOAD_ZIP,
  "",
  "/temp/"
);

?>

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-08-25 (水) 15:46:44 (2886d)