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学习笔记 (1) 环境配置与代码调试
Jun 19 PHP
利用php获取服务器时间的实现代码
Jun 07 PHP
php环境无法上传文件的解决方法
Apr 30 PHP
php生成随机颜色的方法
Nov 13 PHP
PHP中Session可能会引起并发问题
Jun 26 PHP
php自动加载方式集合
Apr 04 PHP
PHP基于单例模式编写PDO类的方法
Sep 13 PHP
浅谈socket同步和异步、阻塞和非阻塞、I/O模型
Dec 15 PHP
MAC下通过改apache配置文件切换php多版本的方法
Apr 26 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
Nov 16 PHP
PHP设计模式之注册树模式分析
Jan 26 PHP
Laravel如何同时连接多个数据库详解
Aug 13 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 header示例代码(推荐)
2010/09/08 PHP
浅析application/x-www-form-urlencoded和multipart/form-data的区别
2014/06/22 PHP
Zend Framework教程之Zend_Layout布局助手详解
2016/03/04 PHP
php常用图片处理类
2016/03/16 PHP
js下用层来实现select的title提示属性
2010/02/23 Javascript
JavaScript判断一个URL链接是否有效的实现方法
2011/10/08 Javascript
javascript学习笔记(十六) 系统对话框(alert、confirm、prompt)
2012/06/20 Javascript
jQuery 回车事件enter使用示例
2014/02/18 Javascript
jQuery表单域属性过滤器用法分析
2015/02/10 Javascript
Linux下编译安装php libevent扩展实例
2015/02/14 Javascript
谈谈我对JavaScript DOM事件的理解
2015/12/18 Javascript
JavaScript中循环遍历Array与Map的方法小结
2016/03/12 Javascript
JQuery控制DIV的选取实现方法
2016/09/18 Javascript
基于node.js的fs核心模块读写文件操作(实例讲解)
2017/09/10 Javascript
微信小程序实现展示评分结果功能
2019/02/15 Javascript
解决vue-cli项目开发运行时内存暴涨卡死电脑问题
2019/10/29 Javascript
在Vuex中Mutations修改状态操作
2020/07/24 Javascript
仿照Element-ui实现一个简易的$message方法
2020/09/14 Javascript
[02:29]完美世界高校联赛上海赛区回顾
2015/12/15 DOTA
Windows系统配置python脚本开机启动的3种方法分享
2015/03/10 Python
python 拷贝特定后缀名文件,并保留原始目录结构的实例
2018/04/27 Python
matplotlib命令与格式之tick坐标轴日期格式(设置日期主副刻度)
2019/08/06 Python
pytorch 修改预训练model实例
2020/01/18 Python
python全栈开发语法总结
2020/11/22 Python
HTML5+Canvas+CSS3实现齐天大圣孙悟空腾云驾雾效果
2016/04/26 HTML / CSS
美国在线家装零售商:Build.com
2016/09/02 全球购物
EVE LOM英国官网:全世界最好的洁面膏
2017/10/30 全球购物
后勤采购员岗位职责
2013/12/19 职场文书
仓库组长岗位职责
2014/01/29 职场文书
元旦文艺汇演主持词
2014/03/26 职场文书
大学生见习期满自我鉴定
2014/09/13 职场文书
药店采购员岗位职责
2014/09/30 职场文书
十七岁的单车观后感
2015/06/12 职场文书
五星红旗迎风飘扬观后感
2015/06/17 职场文书
CSS3点击按钮圆形进度打钩效果的实现代码
2021/03/30 HTML / CSS
python必学知识之文件操作(建议收藏)
2021/05/30 Python