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 相关文章推荐
用PHP读注册表
Oct 09 PHP
PHP 高手之路(一)
Oct 09 PHP
使用php shell命令合并图片的代码
Jun 23 PHP
PHP number_format() 函数定义和用法
Jun 01 PHP
深入PHP许愿墙模块功能分析
Jun 25 PHP
解析php 版获取重定向后的地址(代码)
Jun 26 PHP
19个超实用的PHP代码片段
Mar 14 PHP
yii框架builder、update、delete使用方法
Apr 30 PHP
destoon网站转移服务器后搜索汉字出现乱码的解决方法
Jun 21 PHP
CodeIgniter连贯操作的底层原理分析
May 17 PHP
thinkphp中U方法按路由规则生成url的方法
Mar 12 PHP
ThinkPHP框架整合微信支付之刷卡模式图文详解
Apr 10 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通过iconv将字符串从GBK转换为UTF8字符集
2011/07/18 PHP
php清空(删除)指定目录下的文件,不删除目录文件夹的实现代码
2014/09/04 PHP
php中实现获取随机数组列表的自定义函数
2015/04/02 PHP
PHP实现无限级分类(不使用递归)
2015/10/22 PHP
php metaphone()函数及php localeconv() 函数实例解析
2016/05/15 PHP
firefo xml 读写实现js代码
2009/06/11 Javascript
用 Javascript 验证表单(form)中的单选(radio)值
2009/09/08 Javascript
JavaScript 实现鼠标拖动元素实例代码
2014/02/24 Javascript
js判断浏览器是否支持html5
2014/08/17 Javascript
用JS中split方法实现彩色文字背景效果实例
2016/08/24 Javascript
JS 终止执行的实现方法
2016/11/24 Javascript
bootstrapValidator自定验证方法写法
2016/12/01 Javascript
JS中事件冒泡和事件捕获介绍
2016/12/13 Javascript
JS实现异步上传压缩图片
2017/04/22 Javascript
jQueryUI Sortable 应用Demo(分享)
2017/09/07 jQuery
JavaScript数据结构之双向链表定义与使用方法示例
2017/10/27 Javascript
Vue.js 的移动端组件库mint-ui实现无限滚动加载更多的方法
2017/12/23 Javascript
vue实现a标签点击高亮方法
2018/03/17 Javascript
Vue替代marquee标签超出宽度文字横向滚动效果
2019/12/09 Javascript
JS实现商城秒杀倒计时功能(动态设置秒杀时间)
2019/12/12 Javascript
[04:28]2014DOTA2国际邀请赛 采访小兔子LGD挺进钥匙体育馆
2014/07/14 DOTA
Python使用cx_Oracle模块将oracle中数据导出到csv文件的方法
2015/05/16 Python
Python字符串匹配算法KMP实例
2015/07/18 Python
python numpy库np.percentile用法说明
2020/06/08 Python
美国礼品卡商城: Gift Card Mall
2017/08/25 全球购物
日本最大的旅游网站:Rakuten Travel(乐天旅游)
2018/08/02 全球购物
美国最好的葡萄酒网上商店:Wine Library
2019/11/02 全球购物
蒂娜商店:Tiina the Store
2019/12/07 全球购物
电子商务毕业生求职信
2013/11/10 职场文书
转预备党员政审材料
2014/02/06 职场文书
服装店营销方案
2014/03/10 职场文书
《鹬蚌相争》教学反思
2014/04/22 职场文书
交通事故赔偿协议书
2014/10/16 职场文书
街道社区活动报告
2015/02/05 职场文书
升职自我推荐信范文
2015/03/25 职场文书
JavaScript ES6的函数拓展
2022/01/18 Javascript