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设计聊天室步步通
Oct 09 PHP
php正则校验用户名介绍
Jul 19 PHP
php对图像的各种处理函数代码小结
Jul 08 PHP
通过curl模拟post和get方式提交的表单类
Apr 23 PHP
php+mysql不用递归实现的无限级分类实例(非递归)
Jul 08 PHP
PHP has encountered a Stack overflow问题解决方法
Nov 03 PHP
ThinkPHP框架设计及扩展详解
Nov 25 PHP
php简单分页类实现方法
Feb 26 PHP
PHP使用CURL实现多线程抓取网页
Apr 30 PHP
以实例全面讲解PHP中多进程编程的相关函数的使用
Aug 18 PHP
php实现当前页面点击下载文件的实例代码
Nov 16 PHP
PHP封装的page分页类定义与用法完整示例
Dec 24 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中如何同时使用session和cookie来保存用户登录信息
2013/07/05 PHP
php中解析带中文字符的url函数分享
2015/01/20 PHP
php获取今日开始时间和结束时间的方法
2017/02/27 PHP
PHP数据库操作四:mongodb用法分析
2017/08/16 PHP
ajax+php实现无刷新验证手机号的实例
2017/12/22 PHP
ymPrompt的doHandler方法来实现获取子窗口返回值的方法
2010/06/25 Javascript
window.onresize 多次触发的解决方法
2013/11/08 Javascript
Iframe实现跨浏览器自适应高度解决方法
2014/09/02 Javascript
理解和运用JavaScript的闭包机制
2015/08/13 Javascript
详解javascript的变量与标识符
2016/01/04 Javascript
js老生常谈之this,constructor ,prototype全面解析
2016/04/05 Javascript
js实现旋转木马效果
2017/03/17 Javascript
JavaScript实现的搜索及高亮显示功能示例
2017/08/14 Javascript
python使用arcpy.mapping模块批量出图
2017/03/06 Python
matplotlib中legend位置调整解析
2017/12/19 Python
python re模块的高级用法详解
2018/06/06 Python
TensorFlow 滑动平均的示例代码
2018/06/19 Python
python3解析库BeautifulSoup4的安装配置与基本用法
2018/06/26 Python
详解Python sys.argv使用方法
2019/05/10 Python
python读取csv文件指定行的2种方法详解
2020/02/13 Python
通过python连接Linux命令行代码实例
2020/02/18 Python
pycharm第三方库安装失败的问题及解决经验分享
2020/05/09 Python
BookOutlet加拿大:在网上书店购买廉价折扣图书和小说
2018/10/05 全球购物
Pamela Love官网:纽约设计师Pamela Love的精美、时尚和穿孔珠宝
2020/10/19 全球购物
编程实现当输入某产品代码则打印出该产品记录的功能
2014/05/03 面试题
乡镇消防工作实施方案
2014/03/27 职场文书
团代会主持词
2014/04/02 职场文书
个人授权委托书范本
2014/04/03 职场文书
2014年感恩母亲演讲稿
2014/05/27 职场文书
单位委托书怎么写
2014/08/02 职场文书
学校领导班子群众路线整改措施
2014/09/16 职场文书
党员组织生活会发言材料
2014/10/17 职场文书
2015年乡镇工作总结范文
2015/04/22 职场文书
班主任远程培训研修日志
2015/11/13 职场文书
mybatis 解决从列名到属性名的自动映射失败问题
2021/06/30 Java/Android
解决mysql的int型主键自增问题
2021/07/15 MySQL