NPO法人の設立はお任せ下さいNPO法人とはという基本的内容から実際のNPO法人設立まで広くお手伝いいたします。これからNPO法人をお考えの方はオススメ。NPO法人とはNon
Profit Organizationの略であり、特定非営利活動法人を指します。法人なので当然に登記され、独立した人格として活動ができるようになります。
アルバイトをお探しなら
アルバイトスタイルへ。アルバイトを探したい方、アルバイトを探している方は必見です。
株式会社をこれから設立したいとお考えなら
会社設立webへ。都道府県ごとの会社設立専門家を紹介しております。
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 />";
}
}
?>
|
|