zoukankan      html  css  js  c++  java
  • PHP中实现图片上传的类库

    PHP中实现图片上传的类库

    实现php中图片上传的类. 在php项目开发中,图片上传是很重要的一部分. 很多时候我们对php文件上传比较头疼,因为涉及到图片压缩,图片加水印,获取缩略图,图片格式检测等问题.

    这个类基本上是封装了常用的PHP图片处理函数,可以实现图片的缩略图获取和上次功能. 如果加上之前发布的图片加水印功能的话,就更方便了!

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    /* 
    * 作者: 雪狐博客 
    * 类用途: PHP图片上传 
    */
    class upphoto{  
    public $previewsize=0.125  ;   //预览图片比例  
    public $preview=0;   //是否生成预览,是为1,否为0  
        public $datetime;   //随机数  
        public $ph_name;   //上传图片文件名  
        public $ph_tmp_name;    //图片临时文件名  
        public $ph_path="../userimg/";    //上传文件存放路径  
    public $ph_type;   //图片类型  
        public $ph_size;   //图片大小  
        public $imgsize;   //上传图片尺寸,用于判断显示比例  
        public $al_ph_type=array('image/jpg','image/jpeg','image/png','image/pjpeg','image/gif','image/bmp','image/x-png');    //允许上传图片类型  
        public $al_ph_size=1000000;   //允许上传文件大小  
      function __construct(){  
        $this->set_datatime();  
      }  
      function set_datatime(){  
       $this->datetime=date("YmdHis");  
      }  
       //获取文件类型  
      function get_ph_type($phtype){  
         $this->ph_type=$phtype;  
      }  
      //获取文件大小  
      function get_ph_size($phsize){  
         $this->ph_size=$phsize."<br>";  
      }  
      //获取上传临时文件名  
      function get_ph_tmpname($tmp_name){  
        $this->ph_tmp_name=$tmp_name;  
        $this->imgsize=getimagesize($tmp_name);  
      }  
      //获取原文件名  
      function get_ph_name($phname){  
        $this->ph_name=$this->ph_path.$this->datetime.strrchr($phname,"."); //strrchr获取文件的点最后一次出现的位置  
    //$this->ph_name=$this->datetime.strrchr($phname,"."); //strrchr获取文件的点最后一次出现的位置  
    return $this->ph_name;  
      }  
    //判断上传文件存放目录  
      function check_path(){  
        if(!file_exists($this->ph_path)){  
         mkdir($this->ph_path);  
        }  
      }  
      //判断上传文件是否超过允许大小  
      function check_size(){  
        if($this->ph_size>$this->al_ph_size){  
         $this->showerror("上传图片超过2000KB");  
        }  
      }  
      //判断文件类型  
      function check_type(){  
       if(!in_array($this->ph_type,$this->al_ph_type)){  
             $this->showerror("上传图片类型错误");  
       }  
      }  
      //上传图片  
       function up_photo(){  
       if(!move_uploaded_file($this->ph_tmp_name,$this->ph_name)){  
        $this->showerror("上传文件出错");  
       }  
      }  
      //图片预览  
       function showphoto(){  
          if($this->preview==1){  
          if($this->imgsize[0]>2000){  
            $this->imgsize[0]=$this->imgsize[0]*$this->previewsize;  
                 $this->imgsize[1]=$this->imgsize[1]*$this->previewsize;  
          }  
             echo("<img src=\"{$this->ph_name}\" width=\"{$this->imgsize['0']}\" height=\"{$this->imgsize['1']}\">");  
         }  
       }  
      //错误提示  
      function showerror($errorstr){  
        echo "<script language=javascript>alert('$errorstr');location='javascript:history.go(-1);';</script>";  
       exit();  
      }  
      function save(){  
       $this->check_path();  
       $this->check_size();  
       $this->check_type();  
       $this->up_photo();  
       $this->showphoto();  
      }  
    }

    使用方法:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    //类的实例化: 
    include("uppoo.php");//类的文件名是upoop.php 
    $up=new upphoto; 
    $submit = $_POST['submit']; 
    if($submit == "上传"){ 
      $up->get_ph_tmpname($_FILES['photo']['tmp_name']); 
      $up->get_ph_type($_FILES['photo']['type']); 
      $up->get_ph_size($_FILES['photo']['size']); 
      $up->get_ph_name($_FILES['photo']['name']); 
      $up->save(); 
    }
    1
    2
    3
    4
    //上传图片的HTML: 
    <form action="upphoto.php?action=act" method="post" enctype="multipart/form-data"
    图片来源:<input type="file" name="photo"
    <input type="submit" name="submit" value="上传">
  • 相关阅读:
    centos ftp搭建
    python_模块
    python_如何建立包
    python_类
    python_递归
    python_函数
    python_字典
    python_条件、循环语句
    python_中文乱码问题
    Viola–Jones object detection framework--Rapid Object Detection using a Boosted Cascade of Simple Features中文翻译 及 matlab实现(见文末链接)
  • 原文地址:https://www.cnblogs.com/fx2008/p/2974885.html
Copyright © 2011-2022 走看看