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 相关文章推荐
PHP4 与 MySQL 数据库操作函数详解
Oct 09 PHP
BBS(php &amp; mysql)完整版(七)
Oct 09 PHP
PHP文件打开、关闭、写入的判断与执行代码
May 24 PHP
PHP5中GD库生成图形验证码(有汉字)
Jul 28 PHP
php发送get、post请求的6种方法简明总结
Jul 08 PHP
PHP中使用glob函数实现一句话删除某个目录下的所有文件
Jul 22 PHP
PHP可变变量学习小结
Nov 29 PHP
php等比例缩放图片及剪切图片代码分享
Feb 13 PHP
ecshop添加菜单及权限分配问题
Nov 21 PHP
php使用curl伪造浏览器访问操作示例
Sep 30 PHP
PHP单元测试配置与使用方法详解
Dec 27 PHP
laravel5.6框架操作数据curd写法(查询构建器)实例分析
Jan 26 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
第四节--构造函数和析构函数
2006/11/16 PHP
php 缓存函数代码
2008/08/27 PHP
php实现简易聊天室应用代码
2015/09/23 PHP
PHP插件PHPMailer发送邮件功能
2017/02/28 PHP
PHP实现的贪婪算法实例
2017/10/17 PHP
javascript iframe中打开文件,并检测iframe存在否
2008/12/28 Javascript
js 与或运算符 || &amp;&amp; 妙用
2009/12/09 Javascript
扩展jquery实现客户端表格的分页、排序功能代码
2011/03/16 Javascript
jQuery源码分析-05异步队列 Deferred 使用介绍
2011/11/14 Javascript
Javascript setInterval的两种调用方法(实例讲解)
2013/11/29 Javascript
PHP+jQuery实现随意拖动层并即时保存拖动位置
2015/04/30 Javascript
微信小程序 网络API Websocket详解
2016/11/09 Javascript
AngularJS学习第一篇 AngularJS基础知识
2017/02/13 Javascript
vue时间格式化实例代码
2017/06/13 Javascript
vue webpack开发访问后台接口全局配置的方法
2018/09/18 Javascript
Angular6新特性之Angular Material
2018/12/28 Javascript
Vue CLI3基础学习之pages构建多页应用
2019/06/02 Javascript
vue中axios的二次封装实例讲解
2019/10/14 Javascript
uni-app自定义导航栏按钮|uniapp仿微信顶部导航条功能
2019/11/12 Javascript
详解vue3.0 的 Composition API 的一种使用方法
2020/10/26 Javascript
[01:19:11]Ti4 循环赛第二日 NaVi.us vs iG
2014/07/11 DOTA
python通过wxPython打开一个音频文件并播放的方法
2015/03/25 Python
Python的组合模式与责任链模式编程示例
2016/02/02 Python
Python编写简单的HTML页面合并脚本
2016/07/11 Python
在Python的一段程序中如何使用多次事件循环详解
2017/09/07 Python
python实现txt文件格式转换为arff格式
2018/05/31 Python
python 重命名轴索引的方法
2018/11/10 Python
乔丹诺(Giordano)酒庄德国官网:找到最好的意大利葡萄酒
2017/12/28 全球购物
Pottery Barn阿联酋:购买家具、家居装饰及更多
2019/12/08 全球购物
残疾人创业典型事迹
2014/02/01 职场文书
张家口市高新区党工委群众路线教育实践活动整改方案
2014/10/25 职场文书
2014年高中教师工作总结
2014/12/19 职场文书
世界各国短波电台对东亚播送时间频率表(SW)
2021/06/28 无线电
Golang 并发下的问题定位及解决方案
2022/03/16 Golang
利用uni-app生成微信小程序的踩坑记录
2022/04/05 Javascript
使用ICOM IC-R9500接收机同时测评十台收音机中波接收性能
2022/05/10 无线电