php封装的单文件(图片)上传类完整实例


Posted in PHP onOctober 18, 2016

本文实例讲述了php封装的单文件(图片)上传类。分享给大家供大家参考,具体如下:

<?php
//封装php中的单文件(图片)上传类
/*
//参数1:$file 文件数组 5个属性值 name,type,size,tmp,error
//参数2:文件保存的路径$path
//参数3:文件上传允许的类型 $allow数组  $allow=array('image/jpeg','image/jpg','image/png','image/gif')
//参数4: 允许文件上传的最大大小 $size
//返回值: return $imageName文件的名字
*/
header('content-type:text/html;charset=utf-8');
class Upload{
   //定义一个属性,专门保存错误信息
    public static $error;
   //文件转移的方法
  public function uploadFile($file,$size,$path){
    if(!is_dir($path)){
     $this->mkPath($path);
    }
    $allow=array('image/jpeg','image/jpg','image/png','image/gif');
   //首先判断文件是否已上传到临时目录
    if(!is_array($file)){
     Upload::$error='不是一个有效的文件';
     return false;
    }
   //判断文件是否上传到临时目录成功
   switch($file['error']){
    case 1:
      Upload::$error='上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。';
      return false;
    case 2:
      Upload::$error='上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。';
      return false;
    case 3:
      Upload::$error='文件只有部分被上传';
      return false;
    case 4:
      Upload::$error='没有文件被上传';
       return false;
    case 6:
      Upload::$error='找不到临时文件夹';
      return false;
    case 7:
       Upload::$error='文件写入失败';
       return false;
   }
   //判断文件类型是否是图片
    if(!in_array($file['type'],$allow)){
     Upload::$error='不是要求的文件类型';
     return false;
    }
   //判断文件的大小是否在允许的范围内
    if($file['size']>$size){
     Upload::$error='超出允许最大文件大小';
     return false;
    }
    //文件转移
    if(move_uploaded_file($file['tmp_name'],$path.'/'.$this->getName($file))){
     return $file['name'];
    }else{
     return Upload::$error;
    }
  }
  //创建目录的方法
    private function mkPath($path){
    mkdir($path);
  }
  //文件重命名
    private function getName($file){
     return time().$file['name'];
    }
}

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
基于mysql的论坛(2)
Oct 09 PHP
php htmlspecialchars加强版
Feb 16 PHP
php 随机记录mysql rand()造成CPU 100%的解决办法
May 18 PHP
PHP中删除变量时unset()和null的区别分析
Jan 27 PHP
CodeIgniter框架过滤HTML危险代码
Jun 12 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十二)
Jun 25 PHP
PHP中可以自动分割查询字符的Parse_str函数使用示例
Jul 25 PHP
php中json_encode UTF-8中文乱码的更好解决方法
Sep 28 PHP
ucenter通信原理分析
Jan 09 PHP
3种方法轻松处理php开发中emoji表情的问题
Jul 18 PHP
php事件驱动化设计详解
Nov 10 PHP
PHP实现的DES加密解密封装类完整实例
Apr 29 PHP
Thinkphp实现短信验证注册功能
Oct 18 #PHP
php基于单例模式封装mysql类完整实例
Oct 18 #PHP
php封装的mysqli类完整实例
Oct 18 #PHP
PHP实现文件上传下载实例
Oct 18 #PHP
Yii实现文章列表置顶功能示例
Oct 18 #PHP
Yii统计不同类型邮箱数量的方法
Oct 18 #PHP
详解PHP归并排序的实现
Oct 18 #PHP
You might like
php使用json_encode对变量json编码
2014/04/07 PHP
纯php生成随机密码
2015/10/30 PHP
PHP多维数组转一维数组的简单实现方法
2015/12/23 PHP
php5.6.x到php7.0.x特性小结
2019/08/17 PHP
纯js网页画板(Graphics)类简介及实现代码
2012/12/24 Javascript
JS获取当前网址、主机地址项目根路径
2013/11/19 Javascript
ie8本地图片上传预览示例代码
2014/01/12 Javascript
jquery bind(click)传参让列表中每行绑定一个事件
2014/08/06 Javascript
jQuery插件pagination实现无刷新分页
2016/05/21 Javascript
模拟javascript中的sort排序(简单实例)
2016/08/17 Javascript
前端程序员必须知道的高性能Javascript知识
2016/08/24 Javascript
微信小程序 后台https域名绑定和免费的https证书申请详解
2016/11/10 Javascript
JavaScript学习总结之正则的元字符和一些简单的应用
2017/06/30 Javascript
vue.js实现标签页切换效果
2018/06/07 Javascript
浅谈ng-zorro使用心得
2018/12/03 Javascript
微信小程序日历组件使用方法详解
2018/12/29 Javascript
vue实现分环境打包步骤(给不同的环境配置相对应的打包命令)
2019/06/04 Javascript
Electron + vue 打包桌面操作流程详解
2019/06/24 Javascript
微信小程序8种数据通信的方式小结
2020/02/03 Javascript
Vue关于组件化开发知识点详解
2020/05/13 Javascript
python通过邮件服务器端口发送邮件的方法
2015/04/30 Python
15行Python代码带你轻松理解令牌桶算法
2018/03/21 Python
python使用thrift教程的方法示例
2019/03/21 Python
python 处理微信对账单数据的实例代码
2019/07/19 Python
Python+Kepler.gl实现时间轮播地图过程解析
2020/07/20 Python
python两个list[]相加的实现方法
2020/09/23 Python
高中毕业生自我鉴定
2013/11/03 职场文书
化学实验员岗位职责
2013/12/28 职场文书
企业挂职心得体会
2014/09/10 职场文书
工伤事故赔偿协议书范文
2014/09/24 职场文书
2015年党风廉政建设工作总结
2015/04/09 职场文书
2015年学校心理健康教育工作总结
2015/05/11 职场文书
甲午大海战观后感
2015/06/02 职场文书
谢师宴学生致辞
2015/07/27 职场文书
企业财务管理制度范本
2015/08/04 职场文书
公司员工培训管理制度
2015/08/04 职场文书