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 相关文章推荐
通过html表格发电子邮件
Oct 09 PHP
深入解析php模板技术原理【一】
Jan 10 PHP
第三章 php操作符与控制结构代码
Dec 30 PHP
PHP+Mysql+Ajax+JS实现省市区三级联动
May 23 PHP
mac下Apache + MySql + PHP搭建网站开发环境
Jun 02 PHP
PHP中获取文件创建日期、修改日期、访问时间的方法
Nov 05 PHP
php判断str字符串是否是xml格式数据的方法示例
Jul 26 PHP
php数据库的增删改查 php与javascript之间的交互
Aug 31 PHP
PhpStorm本地断点调试的方法步骤
May 21 PHP
PHP+MySQL实现输入页码跳转到指定页面功能示例
Jun 01 PHP
windows 2008r2+php5.6.28环境搭建详细过程
Jun 18 PHP
PHP中的self关键字详解
Jun 23 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模板,主要想体现一下思路
2006/12/25 PHP
php中ob(Output Buffer 输出缓冲)函数使用方法
2007/07/21 PHP
PHP实现多文件上传的方法
2015/07/08 PHP
Symfony2实现在controller中获取url的方法
2016/03/18 PHP
php一个文件搞定微信jssdk配置
2016/12/12 PHP
php判断/计算闰年的方法小结【三种方法】
2019/07/06 PHP
php跨域调用json的例子
2013/11/13 Javascript
解析JavaScript中delete操作符不能删除的对象
2013/12/03 Javascript
探究Javascript模板引擎mustache.js使用方法
2016/01/26 Javascript
js+html5操作sqlite数据库的方法
2016/02/02 Javascript
JavaScript设计模式经典之工厂模式
2016/02/24 Javascript
jquery滚动条插件(可以自定义)
2016/12/11 Javascript
JavaScript和jQuery制作光棒效果
2017/02/24 Javascript
ES6中Array.copyWithin()函数的用法实例详解
2017/09/16 Javascript
Js面试算法详解
2018/04/08 Javascript
layui(1.0.9)文件上传upload,前后端的实例代码
2019/09/26 Javascript
详解vue高级特性
2020/06/09 Javascript
[03:18]DOTA2亚洲邀请赛小组赛第一日 RECAP赛事回顾
2015/01/30 DOTA
在Docker上开始部署Python应用的教程
2015/04/17 Python
Python实现识别手写数字 Python图片读入与处理
2020/03/23 Python
关于django 数据库迁移(migrate)应该知道的一些事
2018/05/27 Python
根据DataFrame某一列的值来选择具体的某一行方法
2018/07/03 Python
python3获取当前目录的实现方法
2019/07/29 Python
python 检查数据中是否有缺失值,删除缺失值的方式
2019/12/02 Python
python从zip中删除指定后缀文件(推荐)
2019/12/05 Python
Pytorch高阶OP操作where,gather原理
2020/04/30 Python
美国著名的品牌折扣店:Burlington
2017/06/08 全球购物
周生生珠宝香港官网:Chow Sang Sang(香港及海外配送)
2019/09/05 全球购物
添柏岚英国官方网站:Timberland英国
2019/11/28 全球购物
Zalando Lounge瑞士:时尚与生活方式购物俱乐部
2020/03/12 全球购物
Ruby如何创建一个线程
2013/03/10 面试题
英文简历中的自我评价
2013/10/06 职场文书
旷课检讨书1000字
2014/02/14 职场文书
客户答谢会活动方案
2014/08/31 职场文书
Java比较两个对象中全部属性值是否相等的方法
2021/08/07 Java/Android
Win11局域网共享权限在哪里设置? Win11高级共享的设置技巧
2022/04/05 数码科技