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
随意转载~但请保留教程地址★