功能强大的php文件上传类
php  /  管理员 发布于 7年前   133
本文实例为大家分享了php文件上传类,功能很强大,供大家参考,具体内容如下 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。file_name=$_FILES[$file]['name'];//客户端原文件名$this->file_type=$_FILES[$file]['type'];//文件类型$this->file_tem=$_FILES[$file]['tmp_name'];//储存的临时文件名,一般是系统默认$this->file_size=$_FILES[$file]['size'];//文件大小}//如果文件夹不存在则创建文件夹 function creatFolder($f_path){if(!file_exists($f_path)){mkdir($f_path,0777);}}//判断文件是不是超过上传限制function is_big(){if($this->file_size>$this->file_max_size){echo "文件太大,超过限制!";exit;}}//检查文件类型function check_type(){if(!in_array($this->file_type,$this->allow_type)){echo "上传文件类型不正确";exit;}}//检查文件是否存在function check_file_name(){if(!file_exists($this->file_tem)){echo "上传文件不存在";exit;} }//检查是否有同名文件,是否覆盖function check_same_file($filename){if(file_exists($filename)&&$this->over_write!=true){echo "同名文件已存在!";exit;} }//移动文件function move_file($filename,$destination){if(!move_uploaded_file($filename,$destination)){echo "移动文件出错";exit;}}//检查文件是否是通过 HTTP POST 上传的function is_upload_file(){if(!is_uploaded_file($this->file_tem)){echo "文件不存在";exit;}}//获得文件后缀名function getext(){$ext=$this->file_name;$extstr=explode('.',$ext);$count=count($extstr)-1;return $extstr[$count];}//新建文件名function set_name(){ return time().".".$this->getext();}//建立以年月日为文件夹名function creat_mulu(){$this->creatFolder("../../upload/".date(Ymd)); return "upload/".date(Ymd);}//生成的文件名function files_name(){$name=$this->set_name();$folder=$this->creat_mulu();return "../../".$folder."/".$name;}//上传文件function upload_file(){$f_name=$this->files_name();move_uploaded_file($this->file_tem,$f_name);return $f_name;} //生成缩略图//最大宽:120,高:120function create_simg($img_w,$img_h){$name=$this->set_name();$folder=$this->creat_mulu();$new_name="../../".$folder."/s_".$name; $imgsize=getimagesize($this->files_name());switch ($imgsize[2]){case 1:if(!function_exists("imagecreatefromgif")){echo "你的GD库不能使用GIF格式的图片,请使用Jpeg或PNG格式!返回";exit();}$im = imagecreatefromgif($this->files_name());break;case 2:if(!function_exists("imagecreatefromjpeg")){echo "你的GD库不能使用jpeg格式的图片,请使用其它格式的图片!返回";exit();}$im = imagecreatefromjpeg($this->files_name());break;case 3:$im = imagecreatefrompng($this->files_name());break;case 4:$im = imagecreatefromwbmp($this->files_name());break;default:die("is not filetype right");exit;}$src_w=imagesx($im);//获得图像宽度$src_h=imagesy($im);//获得图像高度$new_wh=($img_w/$img_h);//新图像宽与高的比值$src_wh=($src_w/$src_h);//原图像宽与高的比值if($new_wh<=$src_wh){$f_w=$img_w;$f_h=$f_w*($src_h/$src_w);}else{$f_h=$img_h;$f_w=$f_h*($src_w/$src_h);}if($src_w>$img_w||$src_h>$img_h){ if(function_exists("imagecreatetruecolor")){//检查函数是否已定义$new_img=imagecreatetruecolor($f_w,$f_h);if($new_img){imagecopyresampled($new_img,$im,0,0,0,0,$f_w,$f_h,$src_w,$src_h);//重采样拷贝部分图像并调整大小}else{$new_img=imagecreate($f_w,$f_h);imagecopyresized($new_img,$im,0,0,0,0,$f_w,$f_h,$src_w,$src_h);}}else{$$new_img=imagecreate($f_w,$f_h);imagecopyresized($new_img,$im,0,0,0,0,$f_w,$f_h,$src_w,$src_h);}if(function_exists('imagejpeg')){imagejpeg($new_img,$new_name);}else{imagepng($new_img,$new_name);}imagedestroy($new_img);}//imagedestroy($new_img);return $new_name;} }?>
您可能感兴趣的文章:
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号