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模板之Phpbean的目录结构
Jan 10 PHP
PHPThumb PHP 图片缩略图库
Mar 11 PHP
php添加文章时生成静态HTML文章的实现代码
Feb 17 PHP
Nginx下配置codeigniter框架方法
Apr 07 PHP
DEDECMS首页调用图片集里的多张图片
Jun 05 PHP
php简单日历函数
Oct 28 PHP
教你在header中隐藏php的版本信息
Aug 10 PHP
PHP实现的MD5结合RSA签名算法实例
Oct 07 PHP
PHP 断点续传实例详解
Nov 11 PHP
PHP substr()函数参数解释及用法讲解
Nov 23 PHP
PHP实现随机数字、字母的验证码功能
Aug 01 PHP
使用PHP反射机制来构造&quot;CREATE TABLE&quot;的sql语句
Mar 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
overlord人气高涨,却被菲利普频繁举报,第四季很难在国内上映
2020/05/06 日漫
无线电波是什么?它是怎样传输的?
2021/03/01 无线电
PHP投票系统防刷票判断流程分析
2012/02/04 PHP
PHP将HTML转换成文本的实现代码
2015/01/21 PHP
PHP常用正则表达式精选(推荐)
2019/05/28 PHP
JQuery中对服务器控件 DropdownList, RadioButtonList, CheckboxList的操作总结
2011/06/28 Javascript
js绑定事件this指向发生改变的问题解决方法
2013/04/23 Javascript
jQuery创建自定义的选择器用以选择高度大于100的超链接实例
2015/03/18 Javascript
jQuery语法小结(超实用)
2015/12/31 Javascript
AngularJS中处理多个promise的方式
2016/02/02 Javascript
详解百度百科目录导航树小插件
2017/01/08 Javascript
Bootstrap图片轮播效果详解
2017/10/17 Javascript
vue获取dom元素注意事项
2017/12/28 Javascript
jQuery+vue.js实现的多选下拉列表功能示例
2019/01/15 jQuery
深入浅析Vue 中 ref 的使用
2019/04/29 Javascript
layui自定义插件citySelect实现省市区三级联动选择
2019/07/26 Javascript
vue图片加载失败时用默认图片替换的方法
2019/08/29 Javascript
ES6 class类链式继承,实例化及react super(props)原理详解
2020/02/15 Javascript
Selenium执行Javascript脚本参数及返回值过程详解
2020/04/01 Javascript
创建与框架无关的JavaScript插件
2020/12/01 Javascript
用Python的urllib库提交WEB表单
2009/02/24 Python
用C++封装MySQL的API的教程
2015/05/06 Python
使用FastCGI部署Python的Django应用的教程
2015/07/22 Python
利用python实现简单的邮件发送客户端示例
2017/12/23 Python
Python笔试面试题小结
2019/09/07 Python
python模块和包的应用BASE_PATH使用解析
2019/12/14 Python
python列表推导和生成器表达式知识点总结
2020/01/10 Python
Python3操作YAML文件格式方法解析
2020/04/10 Python
在pycharm中使用matplotlib.pyplot 绘图时报错的解决
2020/06/01 Python
Python3合并两个有序数组代码实例
2020/08/11 Python
HTML5 canvas 瀑布流文字效果的示例代码
2018/01/31 HTML / CSS
《三顾茅庐》教学反思
2014/04/10 职场文书
后备干部培训方案
2014/05/22 职场文书
公司委托书怎么写
2014/08/02 职场文书
寻衅滋事罪辩护词
2015/05/21 职场文书
公司业务员管理制度
2015/08/05 职场文书