php图片上传类 附调用方法


Posted in PHP onMay 15, 2016

本文实例为大家分享php图片上传类,供大家参考,具体内容如下

 调用方法:

<?php
header("Content-Type:text/html; charset=utf-8"); 
//类的实例化:
include("uppoo.php");//类的文件名是upoop.php
$up=newupphoto;
$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();
}
?>
//上传图片的HTML:
<form action="upphoto.php?action=act" method="post" enctype="multipart/form-data">
图片来源:<input type="file" name="photo">
<input type="submit" name="submit" value="上传">

 上传类,保存文件名称为 uppoo.php:

<?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=java script>alert('$errorstr');location='java script:history.go(-1);';</script>";
  exit();
 }
 function save(){
  $this->check_path();
  $this->check_size();
  $this->check_type();
  $this->up_photo();
  $this->showphoto();
 }
}
?>

以上就是本文的全部内容,希望对大家学习php程序设计有所帮助。

PHP 相关文章推荐
WHOIS类的修改版
Oct 09 PHP
PHP获取当前文件所在目录 getcwd()函数
May 13 PHP
用PHP将网址字符串转换成超链接(网址或email)
May 25 PHP
php生成随机密码的三种方法小结
Sep 04 PHP
PHP中iconv函数转码时截断字符问题的解决方法
Jan 21 PHP
php检索或者复制远程文件的方法
Mar 13 PHP
php检查字符串中是否包含7位GSM字符的方法
Mar 17 PHP
PHP魔术方法的使用示例
Jun 23 PHP
curl和libcurl的区别简介
Jul 01 PHP
php 遍历目录,生成目录下每个文件的md5值并写入到结果文件中
Dec 12 PHP
PHP实现的服务器一致性hash分布算法示例
Aug 09 PHP
Laravel框架处理用户的请求操作详解
Dec 20 PHP
php简单的上传类分享
May 15 #PHP
分享php多功能图片处理类
May 15 #PHP
非常经典的PHP文件上传类分享
May 15 #PHP
php metaphone()函数及php localeconv() 函数实例解析
May 15 #PHP
非常实用的php验证码类
May 15 #PHP
thinkphp框架下404页面设置 仅三步
May 14 #PHP
php基于CodeIgniter实现图片上传、剪切功能
May 14 #PHP
You might like
PHP与SQL注入攻击[三]
2007/04/17 PHP
ajax完美实现两个网页 分页功能的实例代码
2013/04/16 PHP
destoon切换城市后实现logo旁边显示地区名称的方法
2014/08/21 PHP
php禁止某ip或ip地址段访问的方法
2015/02/25 PHP
自适应高度框架 ----属个人收藏内容
2007/01/22 Javascript
tbody元素支持嵌套的注意方法
2007/03/24 Javascript
js弹出层包含flash 不能关闭隐藏的2种处理方法
2013/06/17 Javascript
Array栈方法和队列方法的特点说明
2014/01/24 Javascript
jquery append()方法与html()方法的区别及使用介绍
2014/08/01 Javascript
jQuery滚动加载图片实现原理
2015/12/14 Javascript
JavaScript基础知识及常用方法总结
2016/01/10 Javascript
微信小程序 密码输入(源码下载)
2017/06/27 Javascript
Node.js使用gm拼装sprite图片
2017/07/04 Javascript
详解开源的JavaScript插件化框架MinimaJS
2017/10/26 Javascript
vue进入页面时不在顶部,检测滚动返回顶部按钮问题及解决方法
2019/10/30 Javascript
jQuery Raty星级评分插件使用方法实例分析
2019/11/25 jQuery
vue style width a href动态拼接问题的解决
2020/08/07 Javascript
python3实现抓取网页资源的 N 种方法
2017/05/02 Python
Tensorflow中使用tfrecord方式读取数据的方法
2018/06/19 Python
使用tensorflow实现线性回归
2018/09/08 Python
浅谈Django中view对数据库的调用方法
2019/07/18 Python
使用Python的turtle模块画国旗
2019/09/24 Python
Python3 全自动更新已安装的模块实现
2020/01/06 Python
python redis存入字典序列化存储教程
2020/07/16 Python
Pycharm的Available Packages为空的解决方法
2020/09/18 Python
python爬虫爬取网页数据并解析数据
2020/09/18 Python
运动鞋中的劳斯莱斯:索康尼(SAUCONY)
2017/08/09 全球购物
英国鲜花递送:Blossoming Gifts
2020/07/10 全球购物
Perfume’s Club美国官网:西班牙第一家在线美容店
2020/06/10 全球购物
2014党员学习兰辉先进事迹思想汇报
2014/09/17 职场文书
个人委托书怎么写
2014/09/17 职场文书
门市房租房协议书
2014/12/04 职场文书
布达拉宫导游词
2015/02/02 职场文书
学生会干部任命书
2015/09/21 职场文书
小程序教您怎样你零成本推广获取数万用户的方法
2019/07/30 职场文书
Python安装及建立虚拟环境的完整步骤
2022/06/25 Servers