php文件上传代码(支持文件批量上传)
本款文件上传类,默认是上传单文件的,我们只要修改$inputname ='files'为你的表单名就可以方便的实现批量文件上传了,$savename = ''保存文件名, $alowexts = array()设置允许上传的类型,$savepath = ''保存路径。
<?php class upload { public $savepath; public $files; private $error; function __construct($inputname = 'files', $savepath = '', $savename = '', $alowexts = array() , $maxsize = 1024000) { if (!$alowexts) $alowexts = explode('|', upload_ftype); $file_array = array(); $savepath = str_replace('', '/', $savepath); $savename = preg_replace('/[^a-z0-9_]+/i', '', $savename); $this->savepath = substr($savepath, -1) == '/' ? $savepath : $savepath . '/'; //路径名以/结尾 if (!make_dir($this->savepath)) { $this->error = 8; $this->error(); } //exit($this->savepath); if (!is_writeable($this->savepath)) { $this->error = 9; $this->error(); } if (sizeof($_files[$inputname]['error']) > 10) { $this->error = 13; $this->error(); } $max = sizeof($_files[$inputname]['error']) - 1; //exit($this->savepath.$savename); foreach ($_files[$inputname]['error'] as $key => $error) { if ($error == upload_err_ok) //批量上传 { $savename = $savename ? $savename : date('ymdims') . mt_rand(10000, 99999); $fileext = strtolower(get_fileext($_files[$inputname]['name'][$key])); $savename = $savename . '.' . $fileext; $tmp_name = $_files[$inputname]['tmp_name'][$key]; $filesize = $_files[$inputname]['size'][$key]; if (!in_array($fileext, $alowexts)) { $this->error = 10; $this->error(); } if ($filesize > $maxsize) { $this->error = 11; $this->error(); } if (!$this->isuploadedfile($tmp_name)) { $this->error = 12; $this->error(); } if (move_uploaded_file($tmp_name, $this->savepath . $savename) || @copy($tmp_name, $this->savepath . $savename)) { //exit($this->savepath.$savename); @chmod($savename, 0644); @unlink($tmp_name); $file_array[] = $this->savepath . $savename; } } else { $this->error = $error; $this->error(); } unset($savename); } $this->files = $file_array; return true; } function isuploadedfile($file) //去掉系统自带的反斜线 { return (is_uploaded_file($file) || is_uploaded_file(str_replace('', '', $file))); } function error() { $upload_error = array( 0 => '文件上传成功 !', 1 => '上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值 !', 2 => '上传文件的大小超过了 html 表单中 max_file_size 选项指定的值 !', 3 => '文件只有部分被上传 !', 4 => '没有文件被上传 !', 5 => '未知错误!', 6 => '找不到临时文件夹。 !', 7 => '文件写入临时文件夹失败 !', 8 => '附件目录创建失败 !', 9 => '附件目录没有写入权限 !', 10 => '不允许上传该类型文件 !', 11 => '文件超过了管理员限定的大小 !', 12 => '非法上传文件 !', 13 => '最多可同时上传10个文件 !' ); showmsg($upload_error[$this->error]); } } //使用方法 new upload();
教程链接:http://www.phprm.com/scxz/fs965.html
随意转载~但请保留教程地址★