PHPマニュアル/PEARマニュアル | ユーザフォーラムで議論/質問 | マニュアル検索 | ハイライト | ハイライトオフ | ポータル | php spot

| JavaScript入門&応用&リファレンスなら「JavaScriptist」

  

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

単純なファイルアップロード用の HTML フォーム

単一ファイルのアップロードのサンプルを試してみるには、このようなフォームを使用します。

<?php
// 以下のサンプルコードを、ここに書きます
?>
<html>
 <head>
 </head>
 <body>
  <form name="fileuploadexample" method="POST" enctype="multipart/form-data"
   action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']) ?>">
   <input type="file" name="f" />
   <input type="submit" name="submit" value="Submit" />
  </form>
 </body>
</html>

単純なファイルのアップロード

以下のコードは、リクエストを監視し、ファイルがフォームから正常に アップロードされたかどうかを調べます。この例の場合、ファイルは サブディレクトリ 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/ に移動されました。";
    } else {
        echo 
$moved->getMessage();
    }
} elseif (
$file->isMissing()) {
    echo 
"ファイルがありません。";
} elseif (
$file->isError()) {
    echo 
$file->errorMsg();
}
?>

複数のファイルをアップロードするための HTML フォーム

複数ファイルのアップロードのサンプルを試してみるには、このようなフォームを使用します。

<?php
// 以下のサンプルコードを、ここに書きます
?>
<html>
 <head>
 </head>
 <body>
  <form name="fileuploadexample2" method="POST" enctype="multipart/form-data"
   action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']) ?>">
   <input type="file" name="f1" />
   <input type="file" name="f2" />
   <input type="submit" name="submit" value="Submit" />
  </form>
 </body>
</html>

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

複数のファイルをアップロードするには、フォームフィールドの名前 (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());
}
?>
忘却曲線を使ってこの知識を確実に記憶に残す

フォーラムで「」について話す
各種マニュアル: PHPマニュアル | PEARマニュアル | Smarty(英語)マニュアル | PHP-GTKマニュアル | 」をGoogle検索
copyright © 1997-2024 PHP ドキュメント作成グループ(ライセンス). provided by php spot. マニュアル: