PHP封装成类(文件上传)
来源:互联网 发布:淘宝足球竞猜 编辑:程序博客网 时间:2024/06/12 20:29
uploadfile.class.php
<?php /** * Created by PhpStorm. * User: huang * Date: 2017/7/19 * Time: 23:20 */header("content-type:text/html;charset=utf-8");$new = new upload();class upload{ protected $fileName; protected $fileInfo; protected $maxSize; protected $allowExt; protected $allowMime; protected $uploadPath; protected $imgFlag; private $Error; private $Ext; public function __construct($fileName='myfile', $uploadPath='uploads', $maxSize = '2097152', $allowExt = array('jpg', 'jpeg', 'png', 'git', 'wbmp'), $allowMime =array(' image/png','image/jpeg','image/gif'),$imgFlag = true){ $this->fileName = $fileName; $this->fileInfo = $_FILES[$this->fileName]; $this->maxSize = $maxSize; $this->allowExt = $allowExt; $this->allowMime = $allowMime; $this->uploadPath = $uploadPath; $this->imgFlag = $imgFlag; } //产生唯一字符串 protected function getUniname(){ return md5(uniqid(microtime(true),true)); } //上传文件 public function upload(){ if($this->checkError()&&$this->checkSize()&&$this->checkExt()&&$this->imgTure()&&$this->checkMime()&&$this->checkHTTPpost()){ $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(); } } //检测目录是否存在,创建目录 protected function checkuploadPath(){ if(!file_exists($this->uploadPath)){ mkdir($this->uploadPath,0777,true); } } //检测文件大小 public function checkSize(){ if($this->fileInfo['size'] > $this->maxSize){ $this->Error = $this->fileInfo['name'].'文件过大'; return false; } return true; } //检测是否通过HTTP、POST方式上传 protected function checkHTTPpost(){ 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>'); } //检测文件拓展名 public 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 imgTure(){ if($this->imgFlag){ if(!@getimagesize($this->fileInfo['tmp_name'])){ $this->Error = '不是真实图片'; return false; } return true; } } //检测文件格式 public function checkMime(){ if(!@in_array($this->fileInfo['type'],$this->allowMime)){ $this->Error = '不允许的图片类型'; return false; } return true; } //检测是否有错 public function checkError(){ if(!is_null($this->fileInfo['error'])){ if($this->fileInfo['error'] > 0){ switch ($this->fileInfo['error']) { case 1: $this->Error = '上传文件超过了配置文件中upload_max_filesize选项的值'; break; case 2: $this->Error = '超过表单MAX_FILE_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; } }}?>
阅读全文
1 0
- PHP封装成类(文件上传)
- PHP文件上传类封装
- PHP上传文件封装
- php使用upload封装类上传文件
- PHP封装上传类
- 在php中将上传封装成类
- 在php中将上传封装成类
- 简单文件上传函数的封装(PHP)
- PHP单文件上传(含封装函数)
- php封装单文件上传到数据库(路径)
- PHP文件上传操作和封装
- php封装一个多文件上传
- php封装图片上传类
- 原生PHP上传封装类
- PHP单文件上传原理及上传函数的封装
- PHP实现单文件上传、多个单文件上传、多文件上传的过程化封装
- PHP文件上传类
- php上传文件类
- mybatis-xml配置
- win10 调整字体大小
- 马云装神弄鬼拜见过被通缉的气功大师王林, 歪门邪道的人还办教育,用淘宝支付宝真的不放心
- 开更
- 十分钟学习自然语言处理概述
- PHP封装成类(文件上传)
- 自然语言处理怎么最快入门?
- Deep Learning in NLP (一)词向量和语言模型
- Linux达人养成记Ⅱ笔记
- linux用户管理及用户权力下放
- RHEL7
- 这些网站可以提高工作效率
- SVM算法原理分析
- NOI2017 day2T2 vegetables 题解(伪)