有点标题党,不过确实是一个不错的多文件上传类。简洁实用。 这个类可以用来处理表单上传多个文件。 这个类可以检查文件是否不为空,也没有超过给定的大小限制。 它也可以检查文件类型对允许和拒绝的文件类型列表。 该类还可以通过用下划线代替空格使最终的文
有点标题党,不过确实是一个不错的多文件上传类。简洁实用。
源码与演示:源码出处 演示出处
<?php //http://www.codepearl.com $action = isset($_GET['action'])?$_GET['action']:""; require_once('main.class.php'); $auc = new auc(); if ($action == 'uploadfile') { $auc = new auc(); //Comment: $auc->upload_dir("directory name", "create dir if it does not exist, false by default or true"); //$auc->upload_dir("/path/to/uploads/folder/with/trailing/slash/", false); //Comment: $auc->make_safe = true || false (default); make the file name safe //$auc->make_safe = true; //Comment: $auc->max_file_size = size in bytes (1MB default) || false; set max file size in bytes or false not to check size //$auc->max_file_size = 1048576; //Comment: $auc->overwrite = true || false (default); overwrite if file exists //$auc->overwrite = true; //Comment: $auc->check_file_type = false (default) || allowed || denied; //$auc->check_file_type = 'allowed'; $result = $auc->upload("file"); if (is_array($result)) { echo 'Something Went Wrong'; echo '<pre class="brush:php;toolbar:false">'; var_dump($result); echo '
<?php //http://www.codepearl.com class auc { public $errors = array(); //array used to store any errors that occur. public $upload_dir = ''; //the upload_dir being used by the script public $make_safe = false; //default don't modify the file name to safe version public $max_file_size = 1048576; //Max File Size in Bytes, 1MB public $overwrite = false; //default don't overwrite files that already exsist public $check_file_type = false; //don't check for file type by default but can check for allowed and denied files. public $allowed_mime_types = array('image/jpeg', 'image/png', 'image/gif', 'image/tiff'); //array of allowed mime types used when check_file_type is set to allowed public $denied_mime_types = array('application/x-php', 'text/html'); //array of denied mime types used when check_file_type is set to denied /** * Check if the upload dir is valid, if it is not valid attempt to make the dir, if dir is succesfully created chmod it to 0777. * If any elments fail return false else set upload_dir and return true. * @param string $dir * @param boolean $mkdir * @return true or false */ public function upload_dir($dir, $mkdir = false) { $errors =& $this->errors; $status = true; if (!is_dir($dir)) { if ($mkdir) { if (!mkdir($dir)) { $status = false; } else { if (!chmod($dir, 0777)) $status = false; } } else { $status = false; } } if ($status) { $this->upload_dir = $dir; return true; } else { $errors['general'][] = 'Upload Dir is Not Valid and/or a dir could not be created/chmod.'; return false; } } /** * check that the upload dir is valid and that it is writeable * * @param string $dir * @return true or false */ public function check_dir($dir) { if (!is_dir($dir) || !is_writable($dir)) return false; return true; } /** * make the uploaded file name safe * * @param string $file_name * @return safe file name */ public function make_safe($file_name) { return str_replace(' ', '_', $file_name); } /** * Check the Attemted Uploads for errors etc if everything goes good move the file, to the upload_dir. * * @param array $object * @return unknown */ public function upload($object) { $errors =& $this->errors; if (empty($errors['general'])) { if (empty($this->upload_dir)) $this->upload_dir = dirname(__FILE__).'/'; //if no default upload_dir has been specified used the current dir. if ($this->check_dir($this->upload_dir)) { $files = $_FILES[$object]; $count = count($files['name']) - 1; echo '<pre class="brush:php;toolbar:false">'; var_dump($files); echo '