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转成EXE文件
Oct 09 PHP
做一个有下拉功能的留言版
Oct 09 PHP
删除数组元素实用的PHP数组函数
Aug 18 PHP
php通过ajax实现双击table修改内容
Apr 28 PHP
页面利用渐进式JPEG来提升用户体验度
Dec 01 PHP
php使用指定字符列表生成随机字符串的方法
Apr 18 PHP
PHP变量赋值、代入给JavaScript中的变量
Jun 29 PHP
PHP实现合并discuz用户
Aug 05 PHP
PHP常用的排序和查找算法
Aug 06 PHP
php提交post数组参数实例分析
Dec 17 PHP
laravel通过创建自定义artisan make命令来新建类文件详解
Aug 17 PHP
Laravel5.5 数据库迁移:创建表与修改表示例
Oct 23 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编程中字符串处理的5个技巧小结
2007/11/13 PHP
php 魔术方法使用说明
2009/10/20 PHP
解析linux下安装memcacheq(mcq)全过程笔记
2013/06/27 PHP
ThinkPHP内置jsonRPC的缺陷分析
2014/12/18 PHP
PHP编译安装时常见错误解决办法
2015/05/28 PHP
ThinkPHP中类的构造函数_construct()与_initialize()的区别详解
2017/03/13 PHP
php中的explode()函数实例介绍
2019/01/18 PHP
javascript从image转换为base64位编码的String
2014/07/29 Javascript
JS回调函数的应用简单实例
2014/09/17 Javascript
js实现用户离开页面前提示是否离开此页面的方法(包括浏览器按钮事件)
2015/07/18 Javascript
JavaScript SHA512&amp;SHA256加密算法详解
2015/08/11 Javascript
jquery实现Slide Out Navigation滑出式菜单效果代码
2015/09/07 Javascript
学习JavaScript设计模式之责任链模式
2016/01/18 Javascript
理解javascript模块化
2016/03/28 Javascript
利用jsonp跨域调用百度js实现搜索框智能提示
2016/08/24 Javascript
JS仿淘宝搜索框用户输入事件的实现
2017/06/19 Javascript
JS图片轮播与索引变色功能实例详解
2017/07/06 Javascript
mock.js模拟前后台交互
2019/07/25 Javascript
基于Vue和Element-Ui搭建项目的方法
2019/09/06 Javascript
JS如何调用WebAssembly编译出来的.wasm文件
2020/11/05 Javascript
Python制作爬虫采集小说
2015/10/25 Python
Python下实现的RSA加密/解密及签名/验证功能示例
2017/07/17 Python
VSCode下配置python调试运行环境的方法
2018/04/06 Python
浅谈pyqt5中信号与槽的认识
2019/02/17 Python
Python3中小括号()、中括号[]、花括号{}的区别详解
2020/11/15 Python
Django视图类型总结
2021/02/17 Python
python中最小二乘法详细讲解
2021/02/19 Python
欧洲领先的技术商店:eibmarkt.com
2019/05/10 全球购物
大学生村官典型材料
2014/01/12 职场文书
拾金不昧锦旗标语
2014/06/27 职场文书
新郎答谢词
2015/01/04 职场文书
食品质检员岗位职责
2015/04/08 职场文书
python自动化之如何利用allure生成测试报告
2021/05/02 Python
教你用Python爬取英雄联盟皮肤原画
2021/06/13 Python
React四级菜单的实现
2022/04/08 Javascript
Android实现获取短信验证码并自动填充
2023/05/21 Java/Android