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 相关文章推荐
用Socket发送电子邮件(利用需要验证的SMTP服务器)
Oct 09 PHP
深入解析php模板技术原理【一】
Jan 10 PHP
php面向对象的方法重载两种版本比较
Sep 08 PHP
php递归列出所有文件和目录的代码
Sep 10 PHP
php上传文件问题汇总
Jan 30 PHP
基础的WordPress插件制作教程
Nov 24 PHP
thinkphp,onethink和thinkox中验证码不显示的解决方法分析
Jun 06 PHP
Windows下PHP开发环境搭建教程(Apache+PHP+MySQL)
Jun 13 PHP
thinkPHP基于ajax实现的菜单与分页示例
Jul 12 PHP
php set_include_path函数设置 include_path 配置选项
Oct 30 PHP
laravel 5.3 单用户登录简单实现方法
Oct 14 PHP
基于Laravel 多个中间件的执行顺序详解
Oct 21 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 修复未正常关闭的HTML标签实现代码(支持嵌套和就近闭合)
2012/06/07 PHP
一个好用的PHP验证码类实例分享
2013/12/27 PHP
PHP生成随机密码方法汇总
2015/08/27 PHP
浅析jQuery的链式调用之each函数
2010/12/03 Javascript
基于Jquery的动态创建DOM元素的代码
2010/12/28 Javascript
Javascript四舍五入Math.round()与Math.pow()使用介绍
2013/12/27 Javascript
jQuery实现带有上下控制按钮的简单多行滚屏效果代码
2015/09/04 Javascript
javascript实现PC网页里的拖拽效果
2016/03/14 Javascript
vuejs如何配置less
2017/04/25 Javascript
基于vue2.0实现的级联选择器
2017/06/09 Javascript
浅谈Vue页面级缓存解决方案feb-alive(上)
2019/04/14 Javascript
微信小程序地图实现展示线路
2020/07/29 Javascript
Python Mysql数据库操作 Perl操作Mysql数据库
2009/01/12 Python
python cx_Oracle模块的安装和使用详细介绍
2017/02/13 Python
Python使用回溯法子集树模板解决迷宫问题示例
2017/09/01 Python
Anaconda多环境多版本python配置操作方法
2017/09/12 Python
教你使用python画一朵花送女朋友
2018/03/29 Python
浅谈Python3中strip()、lstrip()、rstrip()用法详解
2019/04/29 Python
Django 配置多站点多域名的实现步骤
2019/05/17 Python
python将四元数变换为旋转矩阵的实例
2019/12/04 Python
python为QT程序添加图标的方法详解
2020/03/09 Python
浅谈python3打包与拆包在函数的应用详解
2020/05/02 Python
Python图像阈值化处理及算法比对实例解析
2020/06/19 Python
可视化pytorch 模型中不同BN层的running mean曲线实例
2020/06/24 Python
Python Merge函数原理及用法解析
2020/09/16 Python
基于Python的图像阈值化分割(迭代法)
2020/11/20 Python
HTML5 Canvas像素处理使用接口介绍
2012/12/02 HTML / CSS
文科教师毕业的自我评价
2014/01/16 职场文书
数控技术应用个人求职信范文
2014/02/03 职场文书
会计工作态度自我评价
2015/03/06 职场文书
预备党员转正党小组意见
2015/06/01 职场文书
公司保洁员管理制度
2015/08/04 职场文书
《神奇的鸟岛》教学反思
2016/02/22 职场文书
Golang 使用Map实现去重与set的功能操作
2021/04/29 Golang
DjangoRestFramework 使用 simpleJWT 登陆认证完整记录
2021/06/22 Python
教你用python实现12306余票查询
2021/06/30 Python