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 中InnoDB和MyISAM的区别分析小结
Apr 15 PHP
PHP 开发环境配置(测试开发环境)
Apr 28 PHP
PHP中date()日期函数有关参数整理
Jul 19 PHP
浅析Mysql 数据回滚错误的解决方法
Aug 05 PHP
PHP中模拟处理HTTP PUT请求的例子
Jul 22 PHP
PHP实现采集中国天气网未来7天天气
Oct 15 PHP
PHP使用适合阅读的格式显示文件大小的方法
Mar 05 PHP
php类的定义与继承用法实例
Jul 07 PHP
php实现无限级分类查询(递归、非递归)
Mar 10 PHP
购物车实现的几种方式优缺点对比
May 02 PHP
PHP parse_ini_file函数的应用与扩展操作示例
Jan 07 PHP
PHP 计算至少是其他数字两倍的最大数的实现代码
May 26 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
多数据表共用一个页的新闻发布
2006/10/09 PHP
使用 eAccelerator加速PHP代码的方法
2007/09/30 PHP
php+mysql不用递归实现的无限级分类实例(非递归)
2014/07/08 PHP
PHP闭包函数传参及使用外部变量的方法
2016/03/15 PHP
PHP记录和读取JSON格式日志文件
2016/07/07 PHP
认识延迟时间为0的setTimeout
2008/05/16 Javascript
input、button的不同type值在ajax提交表单时导致的陷阱
2009/02/24 Javascript
Jsonp 跨域的原理以及Jquery的解决方案
2011/06/27 Javascript
JavaScript实现页面滚动图片加载(仿lazyload效果)
2011/07/22 Javascript
js 手机号码合法性验证代码集合
2012/09/29 Javascript
Bootstrap 表单验证formValidation 实现表单动态验证功能
2017/05/17 Javascript
VUE element-ui 写个复用Table组件的示例代码
2017/11/18 Javascript
vue自定义指令directive实例详解
2018/01/17 Javascript
使用mint-ui实现省市区三级联动效果的示例代码
2018/02/09 Javascript
JS动画定时器知识总结
2018/03/23 Javascript
JS使用正则表达式判断输入框失去焦点事件
2019/10/16 Javascript
jquery检测上传文件大小示例
2020/04/26 jQuery
Javascript实现秒表计时游戏
2020/05/27 Javascript
[02:48]DOTA2英雄基础教程 暗夜魔王
2013/12/12 DOTA
Python对象的深拷贝和浅拷贝详解
2014/08/25 Python
Python的Flask框架中@app.route的用法教程
2015/03/31 Python
python导入csv文件出现SyntaxError问题分析
2017/12/15 Python
Python实现随机生成手机号及正则验证手机号的方法
2018/04/25 Python
python版本单链表实现代码
2018/09/28 Python
使用Python的datetime库处理时间(RPA流程)
2019/11/24 Python
Python3常见函数range()用法详解
2019/12/30 Python
Pytest mark使用实例及原理解析
2020/02/22 Python
CSS3 @font-face属性使用指南
2014/12/12 HTML / CSS
美国最大的宠物药店:1-800-PetMeds
2016/10/02 全球购物
小学新教师培训方案
2014/02/03 职场文书
房屋买卖协议样本
2014/11/16 职场文书
夫妻忠诚协议范文
2014/11/16 职场文书
2015年会计个人工作总结
2015/04/02 职场文书
什么是求职信?求职信应包含哪些内容?
2019/08/14 职场文书
python中mongodb包操作数据库
2022/04/19 Python
Java8 CompletableFuture 异步回调
2022/04/28 Java/Android