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和XSL stylesheets转换XML文档
Oct 09 PHP
如何分别全角和半角以避免乱码
Oct 09 PHP
Discuz 6.0+ 批量注册用户名
Sep 13 PHP
探讨PHP函数ip2long转换IP时数值太大产生负数的解决方法
Jun 06 PHP
解析zend Framework如何自动加载类
Jun 28 PHP
Codeigniter上传图片出现“You did not select a file to upload”错误解决办法
Jun 12 PHP
PHP 中 Orientation 属性判断上传图片是否需要旋转
Oct 16 PHP
php实现分页显示
Nov 03 PHP
[原创]php简单防盗链验证实现方法
Jul 09 PHP
PHP中如何判断exec函数执行成功?
Aug 04 PHP
PHP+Ajax无刷新带进度条图片上传示例
Feb 08 PHP
php中get_object_vars()在数组的实例用法
Feb 22 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
Yii2针对指定url的生成及图片等的引入方法小结
2016/07/18 PHP
PHP实现的微信公众号扫码模拟登录功能示例
2019/05/30 PHP
js 多浏览器分别判断代码
2010/04/01 Javascript
给jqGrid数据行添加修改和删除操作链接(之一)
2011/11/04 Javascript
Jquery网页出现的乱码问题的三种解决方法
2013/06/30 Javascript
jQuery学习笔记之toArray()
2014/06/09 Javascript
node.js下when.js 的异步编程实践
2014/12/03 Javascript
详解AngularJS中的filter过滤器用法
2016/01/04 Javascript
AngularJS中的Directive实现延迟加载
2016/01/25 Javascript
js操作XML文件的实现方法兼容IE与FireFox
2016/06/25 Javascript
JavaScript基础知识点归纳(推荐)
2016/07/09 Javascript
js获取时间函数及扩展函数的方法
2016/10/30 Javascript
jQuery File Upload文件上传插件使用详解
2016/12/06 Javascript
js编写简单的聊天室功能
2017/08/17 Javascript
原生JavaScript实现的简单放大镜效果示例
2018/02/07 Javascript
详解Webpack + ES6 最新环境搭建与配置
2018/06/04 Javascript
React Router V4使用指南(精讲)
2018/09/17 Javascript
vue-cli整合vuex的时候,修改actions和mutations,实现热部署的方法
2018/09/19 Javascript
javascript面向对象三大特征之继承实例详解
2019/07/24 Javascript
JavaScript Window窗口对象属性和使用方法
2020/01/19 Javascript
js实现动态时钟
2020/03/12 Javascript
Vue实现计算器计算效果
2020/08/17 Javascript
跟老齐学Python之使用Python查询更新数据库
2014/11/25 Python
Python使用pylab库实现画线功能的方法详解
2017/06/08 Python
Python 装饰器实现DRY(不重复代码)原则
2018/03/05 Python
django DRF图片路径问题的解决方法
2018/09/10 Python
Python实现插入排序和选择排序的方法
2019/05/12 Python
python定义具名元组实例操作
2021/02/28 Python
用CSS3实现无限循环的无缝滚动的示例代码
2017/11/01 HTML / CSS
DOUGLAS波兰:在线销售香水和化妆品
2020/07/05 全球购物
德国高尔夫商店:Par71.de
2020/11/29 全球购物
大学生创业项目方案
2014/03/08 职场文书
大学生推广普通话演讲稿
2014/09/21 职场文书
2015年大学辅导员工作总结
2015/05/12 职场文书
甲午风云观后感
2015/06/02 职场文书
Python 读写 Matlab Mat 格式数据的操作
2021/05/19 Python