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 相关文章推荐
模板引擎Smarty深入浅出介绍
Dec 06 PHP
PHP连接Access数据库的方法小结
Jun 20 PHP
php遍历目录与文件夹的多种方法详解
Nov 14 PHP
php配合jquery实现增删操作具体实例
Dec 12 PHP
PHP中使用strpos函数实现屏蔽敏感关键字功能
Aug 21 PHP
PHP+MYSQL会员系统的开发实例教程
Aug 23 PHP
PHP return语句另类用法不止是在函数中
Sep 17 PHP
php获取、检查类名、函数名、方法名的函数方法
Jun 25 PHP
讲解WordPress中用于获取评论模板和搜索表单的PHP函数
Dec 28 PHP
PHP简单日历实现方法
Jul 20 PHP
PHP PDOStatement::setFetchMode讲解
Feb 03 PHP
PHP中多字节字符串操作实例详解
Aug 23 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
风味层面去分析咖啡油脂
2021/03/03 咖啡文化
PHP的explode和implode的使用说明
2011/07/17 PHP
无刷新动态加载数据 滚动条加载适合评论等页面
2013/10/16 PHP
采用ThinkPHP中F方法实现快速缓存实例
2014/06/13 PHP
php抽象类使用要点与注意事项分析
2015/02/09 PHP
php计算整个mysql数据库大小的方法
2015/06/19 PHP
nginx+thinkphp下解决不支持pathinfo模式
2015/07/01 PHP
PHP查询附近的人及其距离的实现方法
2016/05/11 PHP
获取内联和链接中的样式(js代码)
2013/04/11 Javascript
使图片旋转的3种解决方案
2013/11/21 Javascript
jquery实现弹出层完美居中效果
2014/03/03 Javascript
NODE.JS加密模块CRYPTO常用方法介绍
2014/06/05 Javascript
手写的一个兼容各种浏览器的javascript getStyle函数(获取元素的样式)
2014/06/06 Javascript
页面加载完后自动执行一个方法的js代码
2014/09/06 Javascript
vue2.0开发实践总结之入门篇
2016/12/06 Javascript
浅谈Vuejs中nextTick()异步更新队列源码解析
2017/12/31 Javascript
vue-router启用history模式下的开发及非根目录部署方法
2018/12/23 Javascript
详解如何更好的使用module vuex
2019/03/27 Javascript
夯基础之手撕javascript继承详解
2020/11/09 Javascript
js前端对于大量数据的展示方式及处理方法
2020/12/02 Javascript
pymssql ntext字段调用问题解决方法
2008/12/17 Python
Python数据结构之翻转链表
2017/02/25 Python
用scikit-learn和pandas学习线性回归的方法
2019/06/21 Python
tensorflow的ckpt及pb模型持久化方式及转化详解
2020/02/12 Python
pycharm 2020 1.1的安装流程
2020/09/29 Python
NBA欧洲商店(法国):NBA Europe Store FR
2016/10/19 全球购物
将n个数按输入顺序的逆序排列,用函数实现
2012/11/14 面试题
学院领导推荐信
2013/10/30 职场文书
师范大学应届生求职信
2013/11/21 职场文书
中级会计职业生涯规划范文
2014/01/16 职场文书
初中科学教学反思
2014/01/21 职场文书
小学社会实践活动总结
2014/07/03 职场文书
协议书范文
2015/01/27 职场文书
PHP中strval()函数实例用法
2021/06/07 PHP
php去除deprecated的实例方法
2021/11/17 PHP
PyTorch中permute的使用方法
2022/04/26 Python