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 Mysql编程之高级技巧
Aug 27 PHP
php 什么是PEAR?
Mar 19 PHP
PHP 多进程 解决难题
Jun 22 PHP
PHP中的float类型使用说明
Jul 27 PHP
『PHP』PHP截断函数mb_substr()使用介绍
Apr 22 PHP
使用PHP破解防盗链图片的一个简单方法
Jun 07 PHP
PHP内存缓存Memcached类实例
Dec 08 PHP
PHP实现事件机制实例分析
Jun 26 PHP
再推荐十款免费的php开发工具
Nov 09 PHP
深入讲解PHP的Yii框架中的属性(Property)
Mar 18 PHP
php简单备份与还原MySql的方法
May 09 PHP
PHPstorm激活码2020年5月13日亲测有效
Sep 17 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.ini中的php-5.2.0配置指令详解
2008/03/27 PHP
php中几种常见安全设置详解
2010/04/06 PHP
自编函数解决pathinfo()函数处理中文问题
2014/11/03 PHP
PHP MVC框架skymvc支持多文件上传
2016/05/26 PHP
php生成复杂验证码(倾斜,正弦干扰线,黏贴,旋转)
2018/03/12 PHP
PHP反射实际应用示例
2019/04/03 PHP
PHP实现的AES 128位加密算法示例
2019/09/16 PHP
如何在PHP中读写文件
2020/09/07 PHP
JAVASCRIPT style 中visibility和display之间的区别
2010/01/22 Javascript
javascript数字格式化通用类 accounting.js使用
2012/08/24 Javascript
JavaScript中instanceof与typeof运算符的用法及区别详细解析
2013/11/19 Javascript
AngularJS使用ng-repeat指令实现下拉框
2016/08/23 Javascript
更靠谱的H5横竖屏检测方法(js代码)
2016/09/13 Javascript
JS IOS/iPhone的Safari浏览器不兼容Javascript中的Date()问题如何解决
2016/11/11 Javascript
jquery 追加元素append、prepend、before、after用法与区别分析
2016/12/02 Javascript
jQuery图片瀑布流的简单实现代码
2017/03/15 Javascript
详解Vue中使用v-for语句抛出错误的解决方案
2017/05/04 Javascript
node使用UEditor富文本编辑器的方法实例
2017/07/11 Javascript
详解如何实现一个简单的 vuex
2018/02/10 Javascript
vue实现pdf导出解决生成canvas模糊等问题(推荐)
2018/10/18 Javascript
Django 多语言教程的实现(i18n)
2018/07/07 Python
利用python和百度地图API实现数据地图标注的方法
2019/05/13 Python
python模拟点击网页按钮实现方法
2020/02/25 Python
python实现学生管理系统开发
2020/07/24 Python
Java中实现多态的机制是什么?
2014/12/07 面试题
销售高级职员求职信
2013/10/29 职场文书
会计电算化专业个人的自我评价
2013/11/24 职场文书
银行出纳岗位职责
2013/11/25 职场文书
十佳班主任事迹材料
2014/01/18 职场文书
声乐专业大学生职业生涯规划书:理想的未来需要自己去打造
2014/09/20 职场文书
私用公车造成事故检讨书
2014/11/16 职场文书
骨干教师考核评语
2014/12/31 职场文书
冲出亚马逊观后感
2015/06/03 职场文书
实习证明格式范文
2015/06/16 职场文书
同乡会致辞
2015/07/30 职场文书
浅谈Python数学建模之线性规划
2021/06/23 Python