php文件上传代码(支持文件批量上传)
本款文件上传类,默认是上传单文件的,我们只要修改$inputname ='files'为你的表单名就可以方便的实现批量文件上传了,$savename = ''保存文件名, $alowexts = array()设置允许上传的类型,$savepath = ''保存路径。
*/ 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();查看更多关于php文件上传代码(支持文件批量上传) - php上传的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did29409