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中的Class的几点个人看法
Oct 09 PHP
配置PHP使之能同时支持GIF和JPEG
Oct 09 PHP
php存储过程调用实例代码
Feb 03 PHP
简单的php缓存类分享     php缓存机制
Jan 22 PHP
微信营销平台系统?刮刮乐的开发
Jun 10 PHP
Yii中render和renderPartial的区别
Sep 03 PHP
ThinkPHP入口文件设置及相关注意事项分析
Dec 05 PHP
php 问卷调查结果统计
Oct 08 PHP
PHP flush 函数使用注意事项
Aug 26 PHP
php中引用符号(&amp;)的使用详细介绍
Dec 06 PHP
PHP实现基于PDO扩展连接PostgreSQL对象关系数据库示例
Mar 31 PHP
Windows下wamp php单元测试工具PHPUnit安装及生成日志文件配置方法
May 28 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开发中常用的三个表单验证函数使用小结
2010/03/03 PHP
PHP session_start()问题解疑(详细介绍)
2013/07/05 PHP
php常用字符串处理函数实例分析
2014/11/22 PHP
PHP实现服务器状态监控的方法
2014/12/09 PHP
PHP 计算两个特别大的整数实例代码
2018/05/07 PHP
根据分辨率不同,调用不同的css文件
2006/08/25 Javascript
jquery封装的对话框简单实现
2013/07/21 Javascript
使用js实现雪花飘落效果
2013/08/26 Javascript
JavaScript数组Array对象增加和删除元素方法总结
2015/01/20 Javascript
JS模拟酷狗音乐播放器收缩折叠关闭效果代码
2015/10/29 Javascript
JavaScript前端开发之实现二进制读写操作
2015/11/04 Javascript
JavaScript简单获取页面图片原始尺寸的方法
2016/06/21 Javascript
AngularJs验证重复密码的方法(两种)
2016/11/25 Javascript
bootstrap daterangepicker汉化以及扩展功能
2017/06/15 Javascript
关于在mongoose中填充外键的方法详解
2017/08/14 Javascript
vue中导出Excel表格的实现代码
2018/10/18 Javascript
[32:36]完美世界DOTA2联赛PWL S3 LBZS vs CPG 第二场 12.12
2020/12/16 DOTA
Python写的Socks5协议代理服务器
2014/08/06 Python
python快速查找算法应用实例
2014/09/26 Python
在Django框架中编写Contact表单的教程
2015/07/17 Python
python魔法方法-自定义序列详解
2016/07/21 Python
pandas的object对象转时间对象的方法
2018/04/11 Python
tensorflow学习笔记之简单的神经网络训练和测试
2018/04/15 Python
Python操作mongodb数据库的方法详解
2018/12/08 Python
对python numpy.array插入一行或一列的方法详解
2019/01/29 Python
完美解决pycharm 不显示代码提示问题
2020/06/02 Python
水果花束:Fruit Bouquets
2017/12/20 全球购物
Book Depository亚太地区:一家领先的国际图书零售商
2019/05/05 全球购物
加拿大大码女装购物网站:Penningtons
2020/12/26 全球购物
Zatchels官网:英国剑桥包品牌
2021/01/12 全球购物
Laravel中Kafka的使用详解
2021/03/24 PHP
运动会口号8字
2014/06/07 职场文书
规范化管理年活动总结
2014/08/29 职场文书
银行催款通知书
2015/04/17 职场文书
计算机教师工作总结
2015/08/13 职场文书
小程序实现悬浮按钮的全过程记录
2021/10/16 HTML / CSS