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 相关文章推荐
mysq GBKl乱码
Nov 28 PHP
php feof用来识别文件末尾字符的方法
Aug 01 PHP
PHP连接SQLServer2005的实现方法(附ntwdblib.dll下载)
Jul 02 PHP
深入解析PHP垃圾回收机制对内存泄露的处理
Jun 14 PHP
解析zend studio中直接导入svn中的项目的方法步骤
Jun 21 PHP
php面向对象中的魔术方法中文说明
Mar 04 PHP
PHP的error_reporting错误级别变量对照表
Jul 08 PHP
php多次include后导致全局变量global失效的解决方法
Feb 28 PHP
PHP生成条形码大揭秘
Sep 24 PHP
解决form中action属性后面?传递参数 获取不到的问题
Jul 21 PHP
Laravel 加载第三方类库的方法
Apr 20 PHP
PHP基于PDO扩展操作mysql数据库示例
Dec 24 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实现邮件发送并带有附件
2014/01/24 PHP
php爬取天猫和淘宝商品数据
2018/02/23 PHP
JS实现日期加减的方法
2013/11/29 Javascript
JavaScript中对象property的读取和写入方法介绍
2014/12/30 Javascript
JavaScript中switch语句的用法详解
2015/06/03 Javascript
AngularJS入门教程之AngularJS模型
2016/04/18 Javascript
使用Bootstrap typeahead插件实现搜索框自动补全的方法
2016/07/07 Javascript
两种JavaScript的AES加密方式(可与Java相互加解密)
2016/08/02 Javascript
JavaScript cookie详解及简单实例应用
2016/12/31 Javascript
微信小程序 devtool隐藏的秘密
2017/01/21 Javascript
Bootstrap表单简单实现代码
2017/03/06 Javascript
nodejs multer实现文件上传与下载
2017/05/10 NodeJs
详解微信小程序 通过控制CSS实现view隐藏与显示
2017/05/24 Javascript
angularjs实现猜数字大小功能
2020/05/20 Javascript
深入浅析vue组件间事件传递
2017/12/29 Javascript
js中apply()和call()的区别与用法实例分析
2018/08/14 Javascript
angular.js实现列表orderby排序的方法
2018/10/02 Javascript
给localStorage设置一个过期时间的方法分享
2018/11/06 Javascript
vue3.0自定义指令(drectives)知识点总结
2020/12/27 Vue.js
使用XML库的方式,实现RPC通信的方法(推荐)
2017/06/14 Python
浅谈Python由__dict__和dir()引发的一些思考
2017/10/30 Python
你眼中的Python大牛 应该都有这份书单
2017/10/31 Python
Python 实现文件打包、上传与校验的方法
2019/02/13 Python
PyCharm中配置PySide2的图文教程
2020/06/18 Python
Python不支持 i ++ 语法的原因解析
2020/07/22 Python
详解如何解决H5开发使用wx.hideMenuItems无效果不生效
2021/01/20 HTML / CSS
斯洛伐克香水和化妆品购物网站:Parfemy-Elnino.sk
2020/01/28 全球购物
竞聘上岗演讲稿范文
2014/01/10 职场文书
《乞巧》教学反思
2014/02/27 职场文书
2014年幼儿园国庆主题活动方案
2014/09/16 职场文书
民政局离婚协议书范本
2014/10/20 职场文书
2014年医院工作总结
2014/11/20 职场文书
董事会决议范本
2015/07/01 职场文书
2016年敬老月活动总结
2016/04/05 职场文书
Nginx tp3.2.3 404问题解决方案
2021/03/31 Servers
关于Numpy之repeat、tile的用法总结
2021/06/02 Python