NPO法人の設立はお任せ下さい

NPO法人とはという基本的内容から実際のNPO法人設立まで広くお手伝いいたします。これからNPO法人をお考えの方はオススメ。NPO法人とはNon Profit Organizationの略であり、特定非営利活動法人を指します。法人なので当然に登記され、独立した人格として活動ができるようになります。

アルバイトをお探しならアルバイトスタイルへ。アルバイトを探したい方、アルバイトを探している方は必見です。
NPO法人をこれから設立したいとお考えなら自分で設立するNPO法人へ。都道府県ごとのNPO法人設立情報などを提供。NPO法人証明書も発行
株式会社をこれから設立したいとお考えなら会社設立webへ。都道府県ごとの会社設立専門家を紹介しております。

HTTP_Upload

HTML フォーム経由で送信されたファイルを お手軽かつ安全に管理します。

概要

この関数は、HTML <input type="file" /> フィールド経由でのファイルのアップロードを管理する高度なシステムを 提供します。以下のような機能があります。

以下の例では、ファイルをアップロードするために HTML フォームフィールド <input type="file" name="f" /> を用いることを想定しています。

例 41-22単純なファイルのアップロード

以下のコードは、リクエストを監視し、ファイルがフォームから正常に アップロードされたかどうかを調べます。この例の場合、ファイルは サブディレクトリ uploads に移動されます。


<?php
require_once "HTTP/Upload.php";

$upload = new HTTP_Upload("en");
$file = $upload->getFiles("f");

if ($file->isValid()) {
    $moved = $file->moveTo("uploads/");
    if (!PEAR::isError($moved)) {
        echo "ファイルが uploads/ に移動されました。";
    }
}
?>

例 41-23複数のファイル、より進んだチェック

複数のファイルをアップロードするには、フォームフィールドの名前 (f) を f[] に変更し、 この名前で複数の <input /> フィールドを 作成します。


<?php
$upload = new HTTP_Upload("en");
$files = $upload->getFiles();

foreach($files as $file){
    if (PEAR::isError($file)) {
        echo $file->getMessage();
    }

    if ($file->isValid()) {
        $file->setName("uniq");
        $dest_name = $file->moveTo("uploads/");

        if (PEAR::isError($dest_name)) {
            echo $dest_name->getMessage();
        }

        $real = $file->getProp("real");

    } elseif ($file->isMissing()) {
        echo "ファイルがありません。";
    } elseif ($file->isError()) {
        echo $file->errorMsg();
    }

    print_r($file->getProp());
}
?>

アップロードされたファイルの拡張情報

HTTP_Upload では、アップロードされたファイルの 拡張情報を getProp() メソッドで取得可能です。

mixed HTTP_Upload_File::getProp ([name])

name に何も指定しなかった場合は、このメソッドは アップロードされたファイルに関するすべての情報を含む配列を返します。 それ以外の場合は、指定したパラメータの値を文字列で返します。

例 41-24getProp() 経由での拡張情報


<?php
require_once "HTTP/Upload.php";

$upload = new HTTP_Upload("en");
$file = $upload->getFiles("f");

if ($file->isValid()) {
    echo "<pre>";
    print_r($file->getProp());
    echo "</pre>";

    printf("アップロードされたファイルの拡張子は %s です。", $file->getProp("ext"));
}
?>

国際化されたエラーメッセージ

HTTP_Upload の便利な機能のひとつに 国際化されたエラーメッセージのサポートがあります。これは、 エラー (不正なファイルがアップロードされたなど) が検出された場合に HTTP_Upload が何語でエラーメッセージを 返すのかをプログラマが指定できるということことを意味します。

HTTP_Upload のコンストラクタの最初の パラメータで、使用する言語を指定します。詳細は以下の例で 説明します。

例 41-25例


<?php
// ドイツ語のエラーメッセージ
$language = "de";

require_once "HTTP/Upload.php";

$upload = new HTTP_Upload($language);
$file = $upload->getFiles("f");

if ($file->isValid()) {
    $moved = $file->moveTo("uploads/");
    if (!PEAR::isError($moved)) {
        echo "ファイルは uploads/ に移動されました。";
    } else {
        // ドイツ語のエラーメッセージを表示します
        echo "エラーが検出されました: " . $moved->getMessage() . "<br />";
    }
}
?>