php文件上传类完整实例


Posted in PHP onMay 14, 2016

本文实例讲述了php文件上传类。分享给大家供大家参考,具体如下:

/**
$file=new class_file($file_array,"flash/");
 $file->set_allow_type(array("jpg","jpeg","gif"));
 $file->is_limit_size();
 if(!$file->allow_file_size()){
   echo $file->error;
   exit;
 }
 if(!$file->allow_file_type()){
    echo $file->error;
    exit();
  }else if(!$file->uploadfile()){
  echo $file->error;
  exit;
 }
**/
<?php
 class class_file{
   private $file_type;
   private $file_size;
   private $save_path;
   private $file_path;
   private $allow_type=array();
   private $allow_size;
   private $file_name;
   private $flag=false;
   private $mime_type;
   private $is_limit_size=false;
   public $error;
   //构造函数
  function class_file($file_array,$save_path){
       $this->file_path=$file_array['tmp_name'];
       $this->file_size=$file_array['size'];
       $this->file_type=$file_array['type'];
       $this->save_path=$save_path;
    }
    //设置允许的文件类型
   function set_allow_type($allow_type){
      $this->allow_type=$allow_type;
    }
    //设置允许的文件大小
   function set_allow_size($allow_size){
      $this->allow_size=$allow_size;
    }
    //文件上传
   public function uploadfile(){
     if(!$this->allow_file_type()){
     $this->file_name();
     }
     if(move_uploaded_file($this->file_path,$this->save_path.$this->file_name)){
       return true;
     }else{
       $this->error="文件上传失败";
       return;
     }
   }
//判断文件上传的类型
   function allow_file_type(){
     $this->file_name();
     if(in_array($this->mime_type,$this->allow_type)){
         return true;
       }else{
         $this->error="不允许上传的类型";
         exit();
       }
   }
 //判断文件上传的大小
   function allow_file_size($size=100){
     if($this->is_limit_size){
     $this->set_allow_size($size);
     if($this->allow_size>=$this->file_size){
       return true;
     }else{
       $this->error="超过文件上传大小限制";
     }
     }
   }
 //是否限制文件大小
   function is_limit_size(){
     $this->is_limit_size=true;
   }
//文件类型和文件名称
   function file_name(){
    $this->mime_type=substr($this->file_type,strpos($this->file_type,"/")+1);
   if($this->mime_type=="pjpeg"){
     $this->mime_type="jpg";
    }
   if($this->mime_type=="x-ms-wma"){
      $this->mime_type="wma";
    }
    if($this->mime_type=="x-ms-wmv"){
      $this->mime_type="wmv";
    }
    $this->file_name=date("YmdHis").".$this->mime_type";
   }
   function _get_file_name(){
     return $this->file_name;
   }
 }
?>

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
php下获取Discuz论坛登录用户名、用户组、用户ID等信息的实现代码
Dec 29 PHP
php缩放gif和png图透明背景变成黑色的解决方法
Oct 14 PHP
php5.4以下版本json不支持不转义内容中文的解决方法
Jan 13 PHP
php链表用法实例分析
Jul 09 PHP
分享PHP守护进程类
Dec 30 PHP
PHP实现163邮箱自动发送邮件
Mar 29 PHP
php微信高级接口群发 多客服
Jun 23 PHP
php魔术方法功能与用法实例分析
Oct 19 PHP
[原创]php集成安装包wampserver修改密码后phpmyadmin无法登陆的解决方法
Nov 23 PHP
win7 wamp 64位 php环境开启curl服务遇到的问题及解决方法
Sep 16 PHP
centos7上编译安装php7以php-fpm方式连接apache
Nov 08 PHP
PHP文件操作简单介绍及函数汇总
Dec 11 PHP
Smarty高级应用之缓存操作技巧分析
May 14 #PHP
php生成Android客户端扫描可登录的二维码
May 13 #PHP
php短信接口代码
May 13 #PHP
php实现在线通讯录功能(附源码)
May 13 #PHP
PHP将MySQL的查询结果转换为数组并用where拼接的示例
May 13 #PHP
php仿微信红包分配算法的实现方法
May 13 #PHP
PHP简单实现无限级分类的方法
May 13 #PHP
You might like
smarty基础之拼接字符串的详解
2013/06/18 PHP
PHP获取和操作配置文件php.ini的几个函数介绍
2013/06/24 PHP
ThinkPHP模版引擎之变量输出详解
2014/12/05 PHP
PHP中把有符号整型转换为无符号整型方法
2015/05/27 PHP
Yii2实现增删改查后留在当前页的方法详解
2017/01/13 PHP
Windows下wamp php单元测试工具PHPUnit安装及生成日志文件配置方法
2018/05/28 PHP
jQuery 位置插件
2008/12/25 Javascript
有效的捕获JavaScript焦点的方法小结
2009/10/08 Javascript
jQuery的实现原理的模拟代码 -1 核心部分
2010/08/01 Javascript
父子窗体间传递JSON格式的数据的代码
2010/12/25 Javascript
JavaScript XML和string相互转化实现代码
2011/07/04 Javascript
js Form.elements[i]的使用实例
2011/11/13 Javascript
js 利用className得到对象的实现代码
2011/11/15 Javascript
js获取URL的参数的方法(getQueryString)示例
2013/09/29 Javascript
使用jquery animate创建平滑滚动效果(可以是到顶部、到底部或指定地方)
2014/05/27 Javascript
使用nodejs、Python写的一个简易HTTP静态文件服务器
2014/07/18 NodeJs
javascript手工制作悬浮菜单
2015/02/12 Javascript
JavaScript入门基础
2015/08/12 Javascript
JS动态日期时间的获取方法
2015/09/28 Javascript
JS实现的RGB网页颜色在线取色器完整实例
2016/12/21 Javascript
Angular工具方法学习
2016/12/26 Javascript
Vue2.2.0+新特性整理及注意事项
2018/08/22 Javascript
vue 修改 data 数据问题并实时显示的方法
2018/08/27 Javascript
vuex2中使用mapGetters/mapActions报错的解决方法
2018/10/20 Javascript
VUE-ElementUI 自定义Loading图操作
2020/11/11 Javascript
Python3.6简单的操作Mysql数据库的三个实例
2018/10/17 Python
python组合无重复三位数的实例
2018/11/13 Python
Python反爬虫技术之防止IP地址被封杀的讲解
2019/01/09 Python
python解析命令行参数的三种方法详解
2019/11/29 Python
通过实例了解Python str()和repr()的区别
2020/01/17 Python
Python pysnmp使用方法及代码实例
2020/08/24 Python
利用CSS3实现文本框的清除按钮相关的一些效果
2015/06/23 HTML / CSS
TripAdvisor日本:全球领先的旅游网站
2019/02/14 全球购物
巴基斯坦购物网站:Goto
2019/03/11 全球购物
学校招生宣传广告词
2014/03/19 职场文书
诚信考试承诺书
2014/03/27 职场文书