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 相关文章推荐
PHP 事件机制(2)
Mar 23 PHP
提高PHP性能的编码技巧以及性能优化详细解析
Aug 24 PHP
php导入导出excel实例
Oct 25 PHP
php使用curl和正则表达式抓取网页数据示例
Apr 13 PHP
PHP获取音频文件的相关信息
Jun 22 PHP
PHP计算加权平均数的方法
Jul 16 PHP
PHP简单字符串过滤方法示例
Sep 04 PHP
php  单例模式详细介绍及实现源码
Nov 05 PHP
PHP5.5安装PHPRedis扩展及连接测试方法
Jan 22 PHP
PHP实现字母数字混合验证码功能
Jul 11 PHP
php使用goto实现自动重启swoole、reactphp、workerman服务的代码
Apr 13 PHP
PHP7 新增功能
Mar 09 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 八种基本的数据类型小结
2011/06/01 PHP
详解PHP中websocket的使用方法
2016/09/15 PHP
js报错 Object doesn't support this property or method的原因分析
2011/03/31 Javascript
js 静态动态成员 and 信息的封装和隐藏
2011/05/29 Javascript
JS等比例缩小图片尺寸的实例
2013/02/27 Javascript
原生JavaScript实现合并多个数组示例
2014/09/21 Javascript
js仿百度登录页实现拖动窗口效果
2016/03/11 Javascript
浅析BootStrap模态框的使用(经典)
2016/04/29 Javascript
jQuery 常用代码集锦(必看篇)
2016/05/16 Javascript
Vuejs第十二篇之动态组件全面解析
2016/09/09 Javascript
探索webpack模块及webpack3新特性
2017/09/18 Javascript
js实现随机点名系统(实例讲解)
2017/10/18 Javascript
使用react实现手机号的数据同步显示功能的示例代码
2018/04/03 Javascript
promise和co搭配生成器函数方式解决js代码异步流程的比较
2018/05/25 Javascript
生成无限制的微信小程序码的示例代码
2019/09/20 Javascript
jQuery使用ajax传递json对象到服务端及contentType的用法示例
2020/03/12 jQuery
python实现简单点对点(p2p)聊天
2017/09/13 Python
python中Switch/Case实现的示例代码
2017/11/09 Python
linux下python中文乱码解决方案详解
2019/08/28 Python
Python GUI自动化实现绕过验证码登录
2020/01/10 Python
keras 特征图可视化实例(中间层)
2020/01/24 Python
Python使用configparser库读取配置文件
2020/02/22 Python
python实现爱奇艺登陆密码RSA加密的方法示例详解
2020/05/27 Python
CSS3圆角边框和边界图片效果实例
2016/07/01 HTML / CSS
css3 中translate和transition的使用方法
2020/03/26 HTML / CSS
德国宠物用品、宠物食品及水族馆网上商店:ZooRoyal
2017/07/09 全球购物
构造方法和其他方法的区别
2016/04/26 面试题
出国留学自荐信
2013/10/25 职场文书
大学生最新职业生涯规划书范文
2014/01/12 职场文书
优秀党员获奖感言
2014/02/18 职场文书
鸿星尔克广告词
2014/03/21 职场文书
小学学雷锋活动总结
2014/04/25 职场文书
大学迎新生标语
2014/10/06 职场文书
小学生作文写作技巧100例,非常实用!
2019/07/08 职场文书
创业计划书之密室逃脱
2019/11/08 职场文书