好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

php文件上传代码(支持文件批量上传) - php上传

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上传的详细内容...

  阅读:67次