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 cli 方式 在crotab中运行解决
Feb 08 PHP
php 缩略图实现函数代码
Jun 23 PHP
关于php mvc开发模式的感想
Jun 28 PHP
php入门学习知识点一 PHP与MYSql连接与查询
Jul 14 PHP
四种php中webservice实现的简单架构方法及实例
Feb 03 PHP
[原创]PHP实现逐行删除文件右侧空格的方法
Dec 25 PHP
Yii中Model(模型)的创建及使用方法
Dec 28 PHP
php+html5实现无刷新图片上传教程
Jan 22 PHP
详解PHP实现异步调用的4种方法
Mar 14 PHP
joomla组件开发入门教程
May 04 PHP
thinkPHP实现递归循环栏目并按照树形结构无限极输出的方法
May 19 PHP
php web环境和命令行环境下查找php.ini的位置
Jul 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
MVC模式的PHP实现
2006/10/09 PHP
PHP人民币金额数字转中文大写的函数代码
2013/02/27 PHP
destoon实现调用热门关键字的方法
2014/07/15 PHP
PHP生成不重复标识符的方法
2014/11/21 PHP
PHP贪婪算法解决0-1背包问题实例分析
2015/03/23 PHP
Laravel5.* 打印出执行的sql语句的方法
2017/07/24 PHP
PHP实现的贪婪算法实例
2017/10/17 PHP
php 中htmlentities导致中文无法查询问题
2018/09/10 PHP
创建一个复制UBB软件信息的链接或按钮的js代码
2008/01/06 Javascript
Jjcarousellite 实现图片列表滚动的简单实例
2013/11/29 Javascript
javascript+html5+css3自定义弹出窗口效果
2017/10/26 Javascript
从parcel.js打包出错到选择nvm的全部过程
2018/01/23 Javascript
Vue封装的可编辑表格插件方法
2018/08/28 Javascript
js数组去重的方法总结
2019/01/18 Javascript
JS使用JSON.parse(),JSON.stringify()实现对对象的深拷贝功能分析
2019/03/06 Javascript
vue2路由基本用法实例分析
2020/03/06 Javascript
vue项目中微信登录的实现操作
2020/09/08 Javascript
[40:17]2018DOTA2亚洲邀请赛 4.5 淘汰赛 LGD vs Liquid 第一场
2018/04/06 DOTA
详解Golang 与python中的字符串反转
2017/07/21 Python
详解使用 pyenv 管理多个版本 python 环境
2017/10/19 Python
python使用jieba实现中文分词去停用词方法示例
2018/03/11 Python
在Python中实现替换字符串中的子串的示例
2018/10/31 Python
Django unittest 设置跳过某些case的方法
2018/12/26 Python
使用python实现名片管理系统
2020/06/18 Python
澳大利亚香水在线:Price Rite Mart
2017/12/28 全球购物
简历中自我评价分享
2013/10/09 职场文书
财会自我鉴定范文
2013/12/27 职场文书
我未来的职业规划范文
2014/01/11 职场文书
茶叶店创业计划书范文
2014/01/19 职场文书
家长给孩子的评语
2014/01/30 职场文书
个人授权委托书范本
2014/04/03 职场文书
购房协议书范本
2014/04/11 职场文书
离婚被告代理词
2015/05/23 职场文书
电影雷锋观后感
2015/06/10 职场文书
消防宣传标语大全
2015/08/03 职场文书
利用ajax+php实现商品价格计算
2021/03/31 PHP