本篇文章主要介绍php文件上传类实例,感兴趣的朋友参考下,希望对大家有所帮助。
下面就是为大家分享的代码:
<?phpdefine('no_file', '不存在上传文件');define('not_allow_ext', '文件类型不在允许范围内');define('not_allow_size', '文件大小不在允许范围内');define('has_the_file', '该文件已经存在');define('upload_failed', '上传失败');define('upload_success', '上传成功');class file_uploader{ var $_file; var $_filesize; var $_fileext; var $_filedir; var $_filename; var $_filetmpname; var $allowsize; var $allowext; var $neednewname; var $newname; var $syslang; var $report; function ready($filedir = '', $file, $allowsize = '', $allowext = '', $neednewname = false, $report = 0){ $this->_filedir = is_dir($filedir) ? $filedir : ''; if(empty($file) || !isset($file['size']) || $file['size'] == 0) $this->error(no_file); $this->_filesize = $file['size']; $this->_filename = $file['name']; $this->_filetmpname = $file['tmp_name']; $this->allowsize = $allowsize; $this->allowext = $allowext; $this->neednewname = ($neednewname) ? true : false; $this->newname = ''; $this->report = $report; } function do_upload(){ if(!is_uploaded_file($this->_filetmpname)) $this->error(no_file); if($this->chk_ext()){ $this->error(not_allow_ext); return ''; } if($this->chk_size()){ $this->error(not_allow_size); return ''; } if($this->neednewname) $this->newname = $this->generate_name().".".$this->get_fileext(); if($this->chk_hasfile()){ $this->error(has_the_file); return ''; } $filename = empty($this->newname) ? @iconv('utf-8','gb2312',$this->_filename) : $this->newname; @chmod($this->_filedir.$filename, 0777); if(move_uploaded_file($this->_filetmpname, $this->_filedir.$filename)){ return $this->result(); }else{ $this->error(upload_failed); return ''; } } function chk_ext(){ if(empty($this->allowext) || in_array($this->get_fileext(), explode("|",$this->allowext))) return false; return true; } function chk_size(){ if(empty($this->allowsize) || get_filesize <= $this->allowsize*1024*1024) return false; return true; } function get_filesize(){ return $this->_filesize; } function get_fileext(){ return substr($this->_filename,strrpos($this->_filename,".")+1); } function generate_name(){ return substr(md5(time()),26); } function chk_hasfile(){ return is_file($this->_filedir.$this->_filename); } function error($tip){ echo $tip; } function result(){ if($this->report){ $filename = empty($this->newname) ? $this->_filename : $this->newname; $arr = array('filename' => $filename, 'filesize' => $this->_filesize, 'tip' => upload_success); return $arr; }else{ return upload_success; } }}/***使用方法与参数说明***//*** 第一个参数$dir 为上传文件存放的路径 第二个参数为$_files 为你那个上传文件变量 第三个参数允许文件大小 单位为mb 第四个参数允许的文件类型 格式为jpg|png|gif 第五个参数是否需要生成新的文件名 第六个参数为返回的提示格式 0为直接提示上传正确 1则返回一个数组array('filename' => $filename, 'filesize' => $this->_filesize, 'tip' => upload_success);***///require("类文件");//$u = new file_uploader;//$u->ready($dir, $_files['upload_file'], false, false, true, 0);//echo $u->do_upload();?>
调用方法
代码如下
$dir = 'upload/'; require("upload_class.php"); $u = new file_uploader; $u->ready($dir, $_files['upload_file'], false, false, true, 0); echo $u->do_upload();
总结:以上就是本篇文的全部内容,希望能对大家的学习有所帮助。
相关推荐:
php使用curl通过代理实现获取数据的方法
php获取用户访问ip地址的几种方法详解
php中常用的数组操作方法详解
以上就是php文件上传类实例的详细内容。