PHP 上传文件 面向对象
来源:互联网 发布:北京景观设计软件培训 编辑:程序博客网 时间:2024/05/17 22:54
1,封装
<?phpclass upload{ protected $fileName; protected $maxSize; protected $allowMime; protected $imgFlag; protected $allowExt; protected $uploadPath; protected $fileInfo; protected $error; protected $ext; public function __construct($fileName='myFile',$imgFlag=true,$uploadPath='./uploads',$maxSize=5242880,$allowExt=array('jpeg','jpg','png','gif','wbmp'),$allowMime=array('image/jpeg','image/jpg','image/png','image/gif','image/wbmp')){ $this->filename=$filename; $this->maxSize=$maxSize; $this->allowMime=$allowMime; $this->allowExt=$allowExt; $this->uploadPath=$uploadPath; $this->imgFlag=$imgFlag; $this->fileInfo=$_FILES[$this->fileName]; } /* *检测是否有错 */ protected function checkError() { if(is_null($this->fileInfo)){ if($this->fileInfo['error']>0){ switch ($this->fileInfo['error']) { case 1: $this->error='超过了PHP配置文件中upload_max_files'; break; case 2: $this->error='超过了表单MAX_FTLE_SIZE设置的值'; break; case 3: $this->error='文件部分上传'; break; case 4: $this->error='没有选择上传文件'; break; case 6: $this->error='没有找到临时目录'; break; case 7: $this->error='文件不可写'; break; case 8: $this->error='由于PHP的扩展程序中断文件上传'; break; } return false; }else{ return true; } }else{ $this->error='文件上传出错'; return false; } } /* @检测文件的大小 */ protected function checkSize() { if($this->fileInfo['size']>$this->maxSize){ $this->error='上传的文件过大'; return false; } return true; } /* @检测文件的扩展名 */ protected function checkExt() { $this->ext=strtolower(pathinfo($this->fileInfo['name'],PATHINFO_EXTENSION)); if(!in_array($this->ext, $this->allowExt)){ $this->error='不允许的扩展名'; return false; } return true; } /* @检测文件类型 */ protected function checkMime() { if(!in_array($this->fileInfo['type'], $this->allowMime)){ $this->error='不允许的文件类型'; return false; } return true; } /* @检测文件是否真的是图片 */ protected function checkTrueImg() { if($this->imgFlag){ if(!@getimagesize($this->fileInfo['tmp_name'])){ $this->error='不是真的图片'; return false; } return true; } } /* @检测文件是否是http post传递 */ protected function HTTPPost() { if(!is_uploaded_file($this->fileInfo['tmp_name'])){ $this->error='是http post传递'; return false; } return true; } } /* @显示错误 */ protected function showError() { exit('<span style ="color:red">'.$this->error.'</span>'); } /* @判断路径是否存在,不存在创建 */ protected function checkUploadPath() { if(!file_exists($this->uploadPath)){ mkdir($this->uploadPath,0777,ture); } } /**得到唯一文件名 */function getUniName(){ return md5(uniqid(microtime(true),true));} /* *上传文件 */ public function uploadFile() { if($this->checkError()&&$this->checkSize() &&$this->checkMime()&&$this->checkTrueImg()&&$this->checkHTTPPost()&&$this->checkExt()){ //判断路径是否存在 $this->checkUploadPath(); $this->uniName=$this->getUniName(); $this->destination=$this->uploadPath.'/'.$this->uniName.'.'.$this->ext; if(move_uploaded_file($this->fileInfo['tmp_name'], $this->destination)){ return $this->destination; }else{ $this->error='文件移动失败'; $this->showError(); } }else{ $this->showError(); } }}2,视图
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>文件上传</title></head><body> <form action="morefile.php" method="post" enctype="multipart/form-data"> <!-- multiple选择多个文件上传 --> <input type="file" name="myFile[]" multiple="multiple"/><br> <input type="submit" value="上传文件" /><br> </form></body></html>3,使用:
<?phpheader('content-type:text/html;charset=utf-8');require_once 'class.php';$upload=new upload();// $d=$upload->uploadFile();$d=$upload->uploadFile('myfile','fff');echo $d;
阅读全文
0 0
- PHP 上传文件 面向对象
- 面向对象实现文件上传(PHP)
- PHP中面向对象关于上传文件
- 用php面向对象实现文件上传
- 75. 面向对象文件上传
- PHP面向对象文件操作类
- php面向对象,正则,文件列表
- PHP面向对象自动加载类文件
- php多文件上传,面向过程upload.php
- 【面向对象】php面向对象
- php面向对象--php面向对象ppt
- 文件上传与下载学习笔记(3)---面向对象方法实现文件上传
- PHP面向对象精要
- PHP 面向对象编程
- PHP面向对象编程
- PHP 面向对象技术
- php 面向对象
- PHP面向对象编程
- Java 空心菱形
- 从Android/Java基础之上学习C/C++语言 --目录
- HTTP个人总结(二)
- Linux初窥:常用命令之(文件编辑与查看)
- Java中对象的深克隆和浅克隆介绍
- PHP 上传文件 面向对象
- Nexus搭建私有maven仓库
- NoSQL 中一匹黑马 Clickhouse
- C/C++中volatile关键字详解
- JAVA中使用LDAP进行用户认证
- 从0开始架构一个IOS程序—— 05— NavigationBar 搭建首页面
- c++笔记
- 闭包(一)
- Linux指令--alias