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(6) 面向对象
Feb 16 PHP
php构造函数实例讲解
Nov 13 PHP
PHP strip_tags()去除HTML、XML以及PHP的标签介绍
Feb 18 PHP
destoon实现调用当前栏目分类及子分类和三级分类的方法
Aug 21 PHP
yii2.0之GridView自定义按钮和链接用法
Dec 15 PHP
33道php常见面试题及答案
Jul 06 PHP
WordPress中限制非管理员用户在文章后只能评论一次
Dec 31 PHP
Ajax PHP JavaScript MySQL实现简易无刷新在线聊天室
Aug 17 PHP
mysql查找删除重复数据并只保留一条实例详解
Sep 24 PHP
Yii2――使用数据库操作汇总(增删查改、事务)
Dec 19 PHP
php中get_object_vars()在数组的实例用法
Feb 22 PHP
phpquery中文手册
Mar 18 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
骨王战斗力在公会成员中排不进前五,却当选了会长,原因竟是这样
2020/03/02 日漫
php面向对象全攻略 (四)构造方法与析构方法
2009/09/30 PHP
PHP命名空间(Namespace)简明教程
2014/06/11 PHP
php中删除、清空session的方式总结
2015/10/09 PHP
jquery 简单导航实现代码
2009/09/11 Javascript
Jquery Validation插件防止重复提交表单的解决方法
2010/03/05 Javascript
JavaScript 语言基础知识点总结(思维导图)
2013/11/10 Javascript
Javascript验证用户输入URL地址是否为空及格式是否正确
2014/10/09 Javascript
表单验证插件Validation应用的实例讲解
2015/10/10 Javascript
BootStrap制作导航条实例代码
2016/05/06 Javascript
Node.JS段点续传:Nginx配置文件分段下载功能的实现方法
2018/03/12 Javascript
Node批量爬取头条视频并保存方法
2018/09/20 Javascript
基于iview-admin实现动态路由的示例代码
2019/10/02 Javascript
详解Vue 项目中的几个实用组件(ts)
2019/10/29 Javascript
js实现右键弹出自定义菜单
2020/09/08 Javascript
[03:42]2014DOTA2国际邀请赛 第三日比赛排位扑朔迷离
2014/07/12 DOTA
使用python实现strcmp函数功能示例
2014/03/25 Python
Python中给List添加元素的4种方法分享
2014/11/28 Python
Python实现曲线拟合操作示例【基于numpy,scipy,matplotlib库】
2018/07/12 Python
Python Matplotlib实现三维数据的散点图绘制
2019/03/19 Python
Python 保持登录状态进行接口测试的方法示例
2019/08/06 Python
python 将dicom图片转换成jpg图片的实例
2020/01/13 Python
Python中import导入不同目录的模块方法详解
2020/02/18 Python
Python利用Xpath选择器爬取京东网商品信息
2020/06/01 Python
使用openCV去除文字中乱入的线条实例
2020/06/02 Python
提高python代码运行效率的一些建议
2020/09/29 Python
HTML5 3D旋转相册的实现示例
2019/12/03 HTML / CSS
英国拳击装备购物网站:RDX Sports
2018/01/23 全球购物
工程类专业自荐信范文
2014/03/09 职场文书
处级领导班子全部召开专题民主生活会情况汇报
2014/09/27 职场文书
党支部四风整改方案
2014/10/25 职场文书
调任通知
2015/04/21 职场文书
离婚撤诉申请书范本
2015/05/18 职场文书
入党团支部推荐意见
2015/06/02 职场文书
2015年学校政教工作总结
2015/07/20 职场文书
消防演习感想
2015/08/10 职场文书