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代码
Dec 06 PHP
PHP中动态显示签名和ip原理
Mar 28 PHP
php文章内容分页并生成相应的htm静态页面代码
Jun 07 PHP
php连接mssql数据库的几种方法
Feb 21 PHP
解析CodeIgniter自定义配置文件
Jun 18 PHP
浅析get与post的一些特殊情况
Jul 28 PHP
Java和PHP在Web开发方面对比分析
Mar 01 PHP
php读取csv文件并输出的方法
Mar 14 PHP
PHP receiveMail实现收邮件功能
Apr 25 PHP
Laravel 已登陆用户再次查看登陆页面的自动跳转设置方法
Sep 30 PHP
使用laravel根据用户类型来显示或隐藏字段
Oct 17 PHP
Yii 实现数据加密和解密
Mar 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
全国FM电台频率大全 - 5 内蒙古自治区
2020/03/11 无线电
codeigniter教程之上传视频并使用ffmpeg转flv示例
2014/02/13 PHP
在IIS下安装PHP扩展的方法(超简单)
2017/04/10 PHP
Yii2.0使用阿里云OSS的SDK上传图片、下载、删除图片示例
2017/09/20 PHP
JS判断元素为数字的奇异写法分享
2012/08/01 Javascript
基于JQuery的一句话搞定手风琴菜单
2012/09/14 Javascript
JavaScript组合拼接字符串的效率对比测试
2014/11/06 Javascript
根据user-agent判断蜘蛛代码黑帽跳转代码(js版与php版本)
2015/09/14 Javascript
node.js require() 源码解读
2015/12/13 Javascript
javascript实现无缝上下滚动特效
2015/12/16 Javascript
AngularJS入门心得之directive和controller通信过程
2016/01/25 Javascript
基于JavaScript实现跳转提示页面
2016/09/24 Javascript
jacascript DOM节点——元素节点、属性节点、文本节点
2017/04/18 Javascript
VueCli3.0中集成MockApi的方法示例
2019/07/05 Javascript
js数据类型转换与流程控制操作实例分析
2019/12/18 Javascript
跟老齐学Python之网站的结构
2014/10/24 Python
Python脚本实现格式化css文件
2015/04/08 Python
python字符串对其居中显示的方法
2015/07/11 Python
python 数据清洗之数据合并、转换、过滤、排序
2017/02/12 Python
浅谈python下含中文字符串正则表达式的编码问题
2018/12/07 Python
python爬取酷狗音乐排行榜
2019/02/20 Python
python能做什么 python的含义
2019/10/12 Python
opencv-python 读取图像并转换颜色空间实例
2019/12/09 Python
Python使用qrcode二维码库生成二维码方法详解
2020/02/17 Python
Python标准库:内置函数max(iterable, *[, key, default])说明
2020/04/25 Python
python 牛顿法实现逻辑回归(Logistic Regression)
2020/10/15 Python
澳大利亚有机化妆品网上商店:The Well Store
2020/02/20 全球购物
工业设计专业推荐信
2013/10/29 职场文书
技术总监个人的自我评价范文
2013/12/18 职场文书
入党积极分子介绍信
2014/01/17 职场文书
初中科学教学反思
2014/01/21 职场文书
运动会通讯稿50字
2014/01/30 职场文书
高校教师个人工作总结2014
2014/12/17 职场文书
南湾猴岛导游词
2015/02/09 职场文书
SQL Server Agent 服务无法启动
2022/04/20 SQL Server
mysql sock 文件解析及作用讲解
2022/07/15 MySQL