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 相关文章推荐
默默简单的写了一个模板引擎
Jan 02 PHP
PHP 的ArrayAccess接口 像数组一样来访问你的PHP对象
Oct 12 PHP
PHP 多维数组的排序问题 根据二维数组中某个项排序
Nov 09 PHP
PHP表单提交表单名称含有点号(.)则会被转化为下划线(_)
Dec 14 PHP
php中CI操作多个数据库的代码
Jul 05 PHP
PHP生成指定长度随机数最简洁的方法
Jul 14 PHP
实例介绍PHP的Reflection反射机制
Aug 05 PHP
PHP中的traits实现代码复用使用实例
May 13 PHP
PHP实现操作redis的封装类完整实例
Nov 14 PHP
替换php字符串中的单引号为双引号的方法
Feb 16 PHP
使用PHPStorm+XDebug搭建单步调试环境
Nov 19 PHP
PHP实现一个限制实例化次数的类示例
Sep 16 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
全面了解PHP中的全局变量
2016/06/17 PHP
微信支付之JSAPI公众号支付详解
2019/05/15 PHP
使用tp框架和SQL语句查询数据表中的某字段包含某值
2019/10/18 PHP
JavaScript asp.net 获取当前超链接中的文本
2009/04/14 Javascript
关于viewport,Ext.panel和Ext.form.panel的关系
2009/05/07 Javascript
javascript常用对话框小集
2013/09/13 Javascript
表单序列化与jq中的serialize使用示例
2014/02/21 Javascript
SuperSlide标签切换、焦点图多种组合插件
2015/03/14 Javascript
JavaScript中绑定事件的三种方式及去除绑定
2016/11/05 Javascript
用jquery的attr方法实现图片切换效果
2017/02/05 Javascript
详解Angular如何正确的操作DOM
2018/07/06 Javascript
Nuxt配合Node在实际生产中的应用详解
2018/08/07 Javascript
angularJs提交文本框数据到后台的方法
2018/10/08 Javascript
React降级配置及Ant Design配置详解
2018/12/27 Javascript
python数据结构之二叉树的建立实例
2014/04/29 Python
Python实现简单状态框架的方法
2015/03/19 Python
python3序列化与反序列化用法实例
2015/05/26 Python
python中WSGI是什么,Python应用WSGI详解
2017/11/24 Python
PyQt5每天必学之关闭窗口
2018/04/19 Python
使用python存储网页上的图片实例
2018/05/22 Python
python七夕浪漫表白源码
2019/04/05 Python
解决Django加载静态资源失败的问题
2019/07/28 Python
12个不为大家熟知的HTML5设计小技巧
2016/06/02 HTML / CSS
德国在线香料制造商:Gewürzland
2020/03/10 全球购物
会计实习自我鉴定
2013/12/04 职场文书
个人函授自我鉴定
2014/03/25 职场文书
合同协议书格式
2014/04/18 职场文书
计算机应用专业毕业生求职信
2014/06/03 职场文书
人民调解员培训方案
2014/06/05 职场文书
校庆标语集锦
2014/06/25 职场文书
2014小学数学教研组工作总结
2014/12/06 职场文书
2015年学校后勤工作总结
2015/04/08 职场文书
公司职员入党自传书
2015/06/26 职场文书
2016党员干部廉洁自律心得体会
2016/01/13 职场文书
详解Javascript实践中的命令模式
2021/05/05 Javascript
在容器中使用nginx搭建上传下载服务器
2022/05/11 Servers