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中的串行化变量和序列化对象
Sep 05 PHP
Mysql中limit的用法方法详解与注意事项
Apr 19 PHP
php在字符串中查找另一个字符串
Nov 19 PHP
PHP操作MongoDB时的整数问题及对策说明
May 02 PHP
使用php验证复选框有效性的示例
Nov 13 PHP
php多种形式发送邮件(mail qmail邮件系统 phpmailer类)
Jan 22 PHP
简单介绍win7下搭建apache+php+mysql开发环境
Aug 06 PHP
php采集神器cURL使用方法详解
Feb 19 PHP
php远程下载类分享
Apr 13 PHP
PHP7基于curl实现的上传图片功能
May 11 PHP
详解在YII2框架中使用UEditor编辑器发布文章
Nov 02 PHP
PHP设计模式之 策略模式Strategy详解【对象行为型】
May 01 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实现数据库的增删改查
2017/02/26 PHP
php通过header发送自定义数据方法
2018/01/18 PHP
初窥JQuery(二)事件机制(2)
2010/12/06 Javascript
Jjcarousellite 实现图片列表滚动的简单实例
2013/11/29 Javascript
javascript实现图像循环明暗变化的方法
2015/02/25 Javascript
JS模式之单例模式基本用法
2015/06/30 Javascript
jQuery页面元素动态添加后绑定事件丢失方法,非 live
2016/06/16 Javascript
jQuery元素属性操作实例(设置、获取及删除元素属性)
2016/09/08 Javascript
NodeJS和BootStrap分页效果的实现代码
2016/11/07 NodeJs
浅谈jquery采用attr修改form表单enctype不起作用的问题
2016/11/25 Javascript
利用forever和pm2部署node.js项目过程
2017/05/10 Javascript
Angular+Bootstrap+Spring Boot实现分页功能实例代码
2017/07/21 Javascript
vue多种弹框的弹出形式的示例代码
2017/09/18 Javascript
jQuery实现炫丽的3d旋转星空效果
2018/07/04 jQuery
JS+HTML5 canvas绘制验证码示例
2018/12/05 Javascript
OpenLayers3实现地图鹰眼以及地图比例尺的添加
2020/09/25 Javascript
python中执行shell的两种方法总结
2017/01/10 Python
Python实现简单的语音识别系统
2017/12/13 Python
基于数据归一化以及Python实现方式
2018/07/11 Python
python学习之hook钩子的原理和使用
2018/10/25 Python
Python面向对象之类和实例用法分析
2019/06/08 Python
django 类视图的使用方法详解
2019/07/24 Python
Django 解决新建表删除后无法重新创建等问题
2020/05/21 Python
Python局部变量与全局变量区别原理解析
2020/07/14 Python
通过代码实例了解Python异常本质
2020/09/16 Python
python+playwright微软自动化工具的使用
2021/02/02 Python
对Pytorch 中的contiguous理解说明
2021/03/03 Python
CSS3 animation实现简易幻灯片轮播特效
2016/09/27 HTML / CSS
布鲁明戴尔百货店:Bloomingdale’s
2016/12/21 全球购物
班组长的岗位职责
2013/12/09 职场文书
日本语毕业生自荐信
2014/02/01 职场文书
学校食堂标语
2014/10/06 职场文书
先进个人推荐材料
2014/12/29 职场文书
微信小程序和php的登录实现
2021/04/01 PHP
Python matplotlib绘制雷达图
2022/04/13 Python
GTX1660显卡搭配显示器推荐
2022/04/19 数码科技