Pear的HTTP_Upload类库提供了一个封装好的html表单文件上传处理程序,使用Pear的error系统。
特点
能一次处理多个文件的上传
容易校验文件的上传状态,限制不期望的文件上传
多语种的报错提示信息(还没有中文,不过可以扩展)
单个文件上传的例子
index.htm
<form action="./files.php" enctype="multipart/form-data">
File 1: <input type="file" name="userfile"><br>
<input type="submit" name="submit" value="Upload!">
</form>
files.php
<?php
require 'HTTP/Upload.php';
$upload = new HTTP_Upload('es');
// Language for error messages
$file = $upload->getFiles('userfile');
// return a file object or error
if (PEAR::isError($file)) {
die ($file->getMessage());
}
// Check if the file is a valid upload
if ($file->isValid()) { // this method will return the name of the file you moved,
// useful for example to save the name in a database
$file_name = $file->moveTo('./uploads_dir/');
if (PEAR::isError($file_name)) {
die ($file_name->getMessage());
}
}
?>
多文件上传的例子
<form action="files.php" enctype="multipart/form-data">
Image 1: <input type="file" name="userfile[]">
<br>Image 2: <input type="file" name="userfile[]">
<br>Image 3: <input type="file" name="userfile[]">
<br><input type="submit" name="sub" value="Upload!"></form>
<?php
$files = $upload->getFiles(); // returns an array of file objects or error
foreach ($files as $file) {
if ($file->isValid()) {
...
}
}?>