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将数据导入到Foxmail
Oct 09 PHP
PHP 翻页 实例代码
Aug 07 PHP
php中文验证码实现示例分享
Jan 12 PHP
PHP三元运算的2种写法代码实例
May 12 PHP
IIS6.0 开启Gzip方法及PHP Gzip函数分享
Jun 08 PHP
php使用cookie实现记住用户名和密码实现代码
Apr 27 PHP
Yii中表单用法实例详解
Jan 05 PHP
PHP中header函数的用法及其注意事项详解
Jun 13 PHP
php+ajax注册实时验证功能
Jul 20 PHP
thinkphp制作404跳转页的简单实现方法
Sep 22 PHP
python进程与线程小结实例分析
Nov 11 PHP
对laravel in 查询的使用方法详解
Oct 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生成随机密码自定义函数代码(简单快速)
2014/05/10 PHP
PHP5.5迭代生成器用法实例详解
2016/03/16 PHP
[原创]php简单防盗链验证实现方法
2016/07/09 PHP
TP5.0框架实现无限极回复功能的方法分析
2019/05/04 PHP
php实例化一个类的具体方法
2019/09/19 PHP
THINKPHP-Apache服务器中使用Alias虚拟目录URL重写 隐藏index.php
2021/03/09 PHP
一些有用的JavaScript和jQuery的片段分享
2011/08/23 Javascript
jQuery UI Autocomplete 体验分享
2012/02/14 Javascript
JavaScript高级程序设计(第3版)学习笔记8 js函数(中)
2012/10/11 Javascript
a标签的href和onclick 的事件的区别介绍
2013/07/26 Javascript
用javascript删除当前行,添加行(示例代码)
2013/11/25 Javascript
使用变量动态设置js的属性名
2014/10/19 Javascript
Javascript原型链的原理详解
2016/01/05 Javascript
BootStrap CSS全局样式和表格样式源码解析
2017/01/20 Javascript
非常实用的vue导航钩子
2017/03/20 Javascript
微信小程序 图片上传实例详解
2017/05/05 Javascript
jQuery实现的简单对话框拖动功能示例
2018/06/05 jQuery
Vue基于localStorage存储信息代码实例
2020/11/16 Javascript
[05:40]DOTA2荣耀之路6:Wings最后进攻
2018/05/30 DOTA
[59:00]DOTA2-DPC中国联赛 正赛 Ehome vs PSG.LGD BO3 第一场 3月7日
2021/03/11 DOTA
python用户管理系统的实例讲解
2017/12/23 Python
python生成tensorflow输入输出的图像格式的方法
2018/02/12 Python
python中验证码连通域分割的方法详解
2018/06/04 Python
Python格式化字符串f-string概览(小结)
2019/06/18 Python
django框架两个使用模板实例
2019/12/11 Python
python 函数嵌套及多函数共同运行知识点讲解
2020/03/03 Python
django实现模板中的字符串文字和自动转义
2020/03/31 Python
纯DOM+CSS3实现简单的小风车动画
2016/09/27 HTML / CSS
关于 HTML5 的七个传说小结
2012/04/12 HTML / CSS
继电保护工岗位职责
2014/01/05 职场文书
预备党员承诺书
2014/03/25 职场文书
知识竞赛主持词
2014/03/26 职场文书
党员争先创优承诺书
2015/01/20 职场文书
Python绘画好看的星空图
2022/03/17 Python
Python函数对象与闭包函数
2022/04/13 Python
mysql数据库如何转移到oracle
2022/12/24 MySQL