Easy and secure managment of files submitted via 
   HTML forms.
 
    This package provides an advanced system for managing uploads of 
    files via HTML <input type="file" />
    fields.  Features include:
  
    In the following examples it is assumed that you are using an
    HTML form field <input type="file" name="f" />
    in order to upload files.
  
    HTTP_Upload provides extensive information
    about uploaded files via the getProp() method:
    
  
    If no value for name is provided, then this
    method will return an array containing all available information
    about the uploaded file.  Otherwise the information identified by
    the value of this parameter will be returned as a string.
  
| Example 42-24. Extensive information via getProp() | 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("The uploaded file has the extension %s.", $file->getProp("ext"));
} | 
 | 
    Another handy feature of HTTP_Upload is 
    support for internationalized error messages.  This means that if
    an error (like an invalid file upload) is detected, the programmer
    can choose in which the language the error messages should be returned
    by HTTP_Upload.
  
    The first parameter of the constructor method for 
    HTTP_Upload determines the language to be 
    used.  This is illustrated in the following example:
  
| Example 42-25. Example | // German error messages
$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 "File was moved to uploads/";
    } else {
        // This will print a german error message
        echo "An error was detected: " . $moved->getMessage() . "<br />";
    }
} | 
 |