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一些有意思的小区别
Dec 06 PHP
PHP n个不重复的随机数生成代码
Jun 23 PHP
PHP无法访问远程mysql的问题分析及解决
May 16 PHP
PHP实现克鲁斯卡尔算法实例解析
Aug 22 PHP
PHP多个文件上传到服务器实例
Oct 29 PHP
PHP实现适用于文件内容操作的分页类
Jun 15 PHP
eclipse php wamp配置教程
Jun 30 PHP
php创建图像具体步骤
Mar 13 PHP
PHP使用new StdClass()创建空对象的方法分析
Jun 06 PHP
基于swoole实现多人聊天室
Jun 14 PHP
PHP5.6读写excel表格文件操作示例
Feb 26 PHP
PHP精确到毫秒秒杀倒计时实例详解
Mar 14 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实现图形显示Ip地址的代码及注释
2014/01/20 PHP
php计算title标题相似比的方法
2015/07/29 PHP
PHP实现负载均衡session共享redis缓存操作示例
2018/08/22 PHP
PHP 代码简洁之道(小结)
2019/10/16 PHP
js获取TreeView控件选中节点的Text和Value值的方法
2012/11/24 Javascript
JS判断浏览器是否支持某一个CSS3属性的方法
2014/10/17 Javascript
nodejs中转换URL字符串与查询字符串详解
2014/11/26 NodeJs
jQuery插件slicebox实现3D动画图片轮播切换特效
2015/04/12 Javascript
jQuery实现返回顶部效果的方法
2015/05/29 Javascript
z-blog SyntaxHighlighter 长代码无法换行解决办法(基于jquery)
2015/11/18 Javascript
基于jQuery实现左右图片轮播(原理通用)
2015/12/24 Javascript
AngularJS中的按需加载ocLazyLoad示例
2017/01/11 Javascript
js模拟支付宝密码输入框
2017/04/11 Javascript
JS实现快速比较两个字符串中包含有相同数字的方法
2017/09/11 Javascript
详解VUE2.X过滤器的使用方法
2018/01/11 Javascript
vue-cli 3.0 版本与3.0以下版本在搭建项目时的区别详解
2018/12/11 Javascript
小程序实现订单倒计时功能
2019/04/23 Javascript
[04:37]DOTA2英雄梦之声Vol20发条
2014/06/20 DOTA
Python functools模块学习总结
2015/05/09 Python
Python排序算法实例代码
2017/08/10 Python
Python爬虫常用库的安装及其环境配置
2018/09/19 Python
在Python中分别打印列表中的每一个元素方法
2018/11/07 Python
详解Python数据可视化编程 - 词云生成并保存(jieba+WordCloud)
2019/03/26 Python
Python基于traceback模块获取异常信息
2020/07/23 Python
python 实现一个图形界面的汇率计算器
2020/11/09 Python
迪卡侬荷兰官网:Decathlon荷兰
2017/10/29 全球购物
YesBabyOnline美国:全球性的在线婚纱礼服工厂
2018/05/05 全球购物
美国最大和最受信任的二手轮胎商店:Bestusedtires.com
2020/06/02 全球购物
《问银河》教学反思
2014/02/19 职场文书
小学教师个人先进事迹材料
2014/05/17 职场文书
推广普通话共筑中国梦演讲稿
2014/09/21 职场文书
优秀团员事迹材料
2014/12/25 职场文书
情人节活动总结范文
2015/02/05 职场文书
2015年语文教学工作总结
2015/05/25 职场文书
Linux7.6二进制安装Mysql8.0.27详细操作步骤
2021/11/27 MySQL
Java多线程并发FutureTask使用详解
2022/06/28 Java/Android