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 相关文章推荐
中国站长站 For Dede4.0 采集规则
May 27 PHP
PHP的变量类型和作用域详解
Mar 12 PHP
ThinkPHP3.1新特性之多层MVC的支持
Jun 19 PHP
ThinkPHP实现多数据库连接的解决方法
Jul 01 PHP
PHP实现绘制3D扇形统计图及图片缩放实例
Oct 01 PHP
php读取文件内容到数组的方法
Mar 16 PHP
PHP也能干大事之PHP中的编码解码详解
Apr 20 PHP
PHP+mysql+ajax轻量级聊天室实现方法详解
Oct 17 PHP
DEDE实现转跳属性文档在模板上调用出转跳地址
Nov 04 PHP
解决php-fpm.service not found问题的办法
Jun 06 PHP
PHPUnit测试私有属性和方法功能示例
Jun 12 PHP
Centos7安装swoole扩展操作示例
Mar 26 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 结果集的分页实现代码
2009/03/10 PHP
PHP 编写的 25个游戏脚本
2009/05/11 PHP
PHP批量去除BOM头代码分享
2015/06/26 PHP
详解PHP对数组的定义以及数组的创建方法
2015/11/27 PHP
jQuery LigerUI 插件介绍及使用之ligerDrag和ligerResizable示例代码打包
2011/04/06 Javascript
jquery动态增加text元素以及删除文本内容实例代码
2013/07/01 Javascript
javascript完美拖拽的实现方法
2013/09/29 Javascript
使用jQuery解决IE与FireFox下createElement方法的差异
2013/11/14 Javascript
javascript中apply和call方法的作用及区别说明
2014/02/14 Javascript
jQuery子窗体取得父窗体元素的方法
2015/05/11 Javascript
jquery图片轮播特效代码分享
2020/04/20 Javascript
JS处理json日期格式化问题
2015/10/01 Javascript
Angular.js回顾ng-app和ng-model使用技巧
2016/04/26 Javascript
深入理解选择框脚本[推荐]
2016/12/13 Javascript
Bootstrap CSS组件之分页(pagination)和翻页(pager)
2016/12/17 Javascript
bootstrap组件之导航组件使用方法
2017/01/19 Javascript
bootstrap如何让dropdown menu按钮式下拉框长度一致
2017/04/10 Javascript
Node.js爬取豆瓣数据实例分析
2018/03/05 Javascript
vue与原生app的对接交互的方法(混合开发)
2018/11/28 Javascript
vue基础之事件简写、事件对象、冒泡、默认行为、键盘事件实例分析
2019/03/11 Javascript
详解Node.js一行命令上传本地文件到服务器
2019/04/22 Javascript
原生js通过一行代码实现简易轮播图
2019/06/05 Javascript
vue+element搭建后台小总结 el-dropdown下拉功能
2020/04/10 Javascript
js 动态校验开始结束时间的实现代码
2020/05/25 Javascript
elementui更改el-dialog关闭按钮的图标d的示例代码
2020/08/04 Javascript
js闭包和垃圾回收机制示例详解
2021/03/01 Javascript
Python复数属性和方法运算操作示例
2017/07/21 Python
对python多线程中互斥锁Threading.Lock的简单应用详解
2019/01/11 Python
Python爬虫 批量爬取下载抖音视频代码实例
2019/08/16 Python
Python如何创建装饰器时保留函数元信息
2020/08/07 Python
matplotlib绘制鼠标的十字光标的实现(内置方式)
2021/01/06 Python
高中军训感言400字
2014/02/24 职场文书
运动会方队口号
2014/06/07 职场文书
交通事故被告答辩状
2015/05/22 职场文书
公司董事任命书
2015/09/21 职场文书
廉洁自律承诺书2016
2016/03/25 职场文书