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-fpm的配置详解
Jun 03 PHP
解决CodeIgniter伪静态失效
Jun 09 PHP
php中实现记住密码下次自动登录的例子
Nov 06 PHP
php+ajax实现的点击浏览量加1
Apr 16 PHP
非常有用的9个PHP代码片段
Apr 06 PHP
php使用自定义函数实现汉字分割替换功能示例
Jan 30 PHP
CI框架(CodeIgniter)公共模型类定义与用法示例
Aug 10 PHP
thinkphp3.2.0 setInc方法 源码全面解析
Jan 29 PHP
详细解读php的命名空间(一)
Feb 21 PHP
php json转换相关知识(小结)
Dec 21 PHP
解决laravel中日志权限莫名变成了root的问题
Oct 17 PHP
PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解
Dec 20 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/11/25 PHP
PHP中PDO的错误处理
2011/09/04 PHP
php判断linux下程序问题实例
2015/07/09 PHP
PHP使用Nginx实现反向代理
2017/09/20 PHP
PHP的mysqli_set_charset()函数讲解
2019/01/23 PHP
文字溢出实现溢出的部分再放入一个新生成的div中具体代码
2013/05/17 Javascript
Nodejs使用mysql模块之获得更新和删除影响的行数的方法
2014/03/18 NodeJs
JavaScript中使用ActiveXObject操作本地文件夹的方法
2014/03/28 Javascript
javascript转换静态图片,增加粒子动画效果
2015/05/28 Javascript
jQuery+JSON实现AJAX二级联动实例分析
2015/12/18 Javascript
SWFUpload多文件上传及文件个数限制的方法
2016/05/31 Javascript
JS产生随机数的用法小结
2016/12/10 Javascript
AngularJs 利用百度地图API 定位当前位置 获取地址信息
2017/01/18 Javascript
vue.js实现的幻灯片功能示例
2019/01/18 Javascript
JavaScript中构造函数与原型链之间的关系详解
2019/02/25 Javascript
vue 父组件通过v-model接收子组件的值的代码
2019/10/27 Javascript
[01:34]2016国际邀请赛中国区预选赛IG战队教练采访
2016/06/27 DOTA
深入浅析Python字符编码
2015/11/12 Python
通过Python爬虫代理IP快速增加博客阅读量
2016/12/14 Python
python2.7无法使用pip的解决方法(安装easy_install)
2018/04/03 Python
python的pytest框架之命令行参数详解(下)
2019/06/27 Python
Python3中的最大整数和最大浮点数实例
2019/07/09 Python
Django-Model数据库操作(增删改查、连表结构)详解
2019/07/17 Python
python PyAUtoGUI库实现自动化控制鼠标键盘
2020/09/09 Python
Python的3种运行方式:命令行窗口、Python解释器、IDLE的实现
2020/10/10 Python
用HTML5.0制作网页的教程
2010/05/30 HTML / CSS
巴西食品补充剂在线零售商:Músculos na Web
2017/08/07 全球购物
Eagle Eyes Optics鹰眼光学:高性能太阳镜
2018/12/07 全球购物
医院搬迁方案
2014/06/14 职场文书
119消防日活动总结
2014/08/29 职场文书
四风问题个人剖析材料
2014/10/07 职场文书
毕业论文答辩开场白
2015/05/27 职场文书
2016年基层党支部书记公开承诺书
2016/03/25 职场文书
python pyhs2 的安装操作
2021/04/07 Python
Redis基本数据类型Zset有序集合常用操作
2022/06/01 Redis
前端canvas中物体边框和控制点的实现示例
2022/08/05 Javascript