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 相关文章推荐
基于mysql的论坛(7)
Oct 09 PHP
PHP新手上路(七)
Oct 09 PHP
php中批量修改文件后缀名的函数代码
Oct 23 PHP
PHP常用技巧总结(附函数代码)
Feb 04 PHP
php中存储用户ID和密码到mysql数据库的方法
Feb 06 PHP
php使用正则表达式获取图片url的方法
Jan 16 PHP
分享PHP函数实现数字与文字分页代码
Jul 28 PHP
Yii实现Command任务处理的方法详解
Jul 14 PHP
ThinkPHP中session函数详解
Sep 14 PHP
[企业公众号]升级到[企业微信]之后发送消息失败的解决方法
Jun 30 PHP
搜索附近的人PHP实现代码
Feb 11 PHP
Laravel框架模板加载,分配变量及简单路由功能示例
Jun 11 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笔记 字符串处理
2010/10/19 PHP
PHP和Mysqlweb应用开发核心技术 第1部分 Php基础-3 代码组织和重用2
2011/07/03 PHP
php中取得文件的后缀名?
2012/02/20 PHP
异步加载技术实现当滚动条到最底部的瀑布流效果
2014/09/16 PHP
PHP7基于curl实现的上传图片功能
2018/05/11 PHP
HTML TO JavaScript 转换
2006/06/26 Javascript
Web版彷 Visual Studio 2003 颜色选择器
2007/01/09 Javascript
ext 列表页面关于多行查询的办法
2010/03/25 Javascript
汉化英文版的Dreamweaver CS5并自动提示jquery
2010/11/25 Javascript
基于Jquery插件开发之图片放大镜效果(仿淘宝)
2011/11/19 Javascript
jQuery读取和设定KindEditor值的方法
2013/11/22 Javascript
JavaScript设计模式经典之工厂模式
2016/02/24 Javascript
学习Angularjs分页指令
2016/07/01 Javascript
深入浅析JavaScript中的Function类型
2016/07/09 Javascript
vue中用H5实现文件上传的方法实例代码
2017/05/27 Javascript
Vue精简版风格指南(推荐)
2018/01/30 Javascript
jquery 实现拖动文件上传加载进度条功能
2018/03/18 jQuery
Vue js 的生命周期(看了就懂)(推荐)
2019/03/29 Javascript
详解基于mpvue微信小程序下载远程图片到本地解决思路
2019/05/16 Javascript
JS为什么说async/await是generator的语法糖详解
2019/07/11 Javascript
element-ui tooltip修改背景颜色和箭头颜色的实现
2019/12/16 Javascript
JQuery中DOM节点的操作与访问方法实例分析
2019/12/23 jQuery
nodejs制作小爬虫功能示例
2020/02/24 NodeJs
实例讲解React 组件
2020/07/07 Javascript
JS实现拖动模糊框特效
2020/08/25 Javascript
Python使用三种方法实现PCA算法
2017/12/12 Python
Python字典及字典基本操作方法详解
2018/01/30 Python
Python编程实现从字典中提取子集的方法分析
2018/02/09 Python
对python .txt文件读取及数据处理方法总结
2018/04/23 Python
Python私有属性私有方法应用实例解析
2020/09/15 Python
一篇文章带你搞定Ubuntu中打开Pycharm总是卡顿崩溃
2020/11/02 Python
CSS3中利用animation属性创建雪花飘落特效
2014/05/14 HTML / CSS
HTML5 canvas 瀑布流文字效果的示例代码
2018/01/31 HTML / CSS
保险公司2016开门红口号集锦
2015/12/24 职场文书
python实现简单石头剪刀布游戏
2021/10/24 Python
详解OpenCV曝光融合
2022/04/29 Python