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静态新闻列表自动生成代码
Jun 14 PHP
php模板之Phpbean的目录结构
Jan 10 PHP
PHP通过session id 实现session共享和登录验证的代码
Jun 03 PHP
php中如何防止表单的重复提交
Aug 02 PHP
php中curl和file_get_content的区别
May 10 PHP
php 伪造HTTP_REFERER页面URL来源的三种方法
Sep 22 PHP
基于php流程控制语句和循环控制语句(讲解)
Oct 23 PHP
PHP基于面向对象实现的留言本功能实例
Apr 04 PHP
thinkPHP5框架分页样式类完整示例
Sep 01 PHP
PHP经典设计模式之依赖注入定义与用法详解
May 21 PHP
thinkPHP框架乐观锁和悲观锁实例分析
Oct 30 PHP
基于PHP实现用户在线状态检测
Nov 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使用正则表达式获取图片url的方法
2015/01/16 PHP
js查找父节点的简单方法
2008/06/28 Javascript
基于JQuery的简单实现折叠菜单代码
2010/09/15 Javascript
JS高级笔记
2011/07/13 Javascript
一些常用弹出窗口/拖放/异步文件上传等实用代码
2013/01/06 Javascript
jQuery之ajax删除详解
2014/02/27 Javascript
node.js中使用socket.io制作命名空间
2014/12/15 Javascript
jQuery实现在下拉列表选择时获取json数据的方法
2015/04/16 Javascript
js实现用户离开页面前提示是否离开此页面的方法(包括浏览器按钮事件)
2015/07/18 Javascript
js创建jsonArray传输至后台及后台全面解析
2016/04/11 Javascript
Bootstrap富文本组件wysiwyg数据保存到mysql的方法
2016/05/09 Javascript
JavaScript知识点总结(六)之JavaScript判断变量数据类型
2016/05/31 Javascript
Three.js利用性能插件stats实现性能监听的方法
2017/09/25 Javascript
Node错误处理笔记之挖坑系列教程
2018/06/05 Javascript
angular实现input输入监听的示例
2018/08/31 Javascript
JavaScript文本特效实例小结【3个示例】
2018/12/22 Javascript
基于Vue+elementUI实现动态表单的校验功能(根据条件动态切换校验格式)
2019/04/04 Javascript
Vue2.0实现组件之间数据交互和通信操作示例
2019/05/16 Javascript
解决layui弹出层layer的area过大被遮挡的问题
2019/09/21 Javascript
浅谈TypeScript 用 Webpack/ts-node 运行的配置记录
2019/10/11 Javascript
vue.js实现左边导航切换右边内容
2019/10/21 Javascript
Vue 微信端扫描二维码苹果端却只能保存图片问题(解决方法)
2020/01/19 Javascript
浅谈python中scipy.misc.logsumexp函数的运用场景
2016/06/23 Python
python的random模块及加权随机算法的python实现方法
2017/01/04 Python
python执行系统命令后获取返回值的几种方式集合
2018/05/12 Python
python 自动批量打开网页的示例
2019/02/21 Python
python利用selenium进行浏览器爬虫
2019/04/25 Python
用python介绍4种常用的单链表翻转的方法小结
2020/02/24 Python
英国口碑最好的的维他命胶囊品牌:Myvitamins(有中文站)
2016/12/03 全球购物
股权收购意向书
2014/04/01 职场文书
汉语言文学专业自荐信
2014/06/11 职场文书
工地质量标语
2014/06/12 职场文书
护理学院专科毕业生求职信
2014/06/28 职场文书
幼儿园教师培训心得体会
2016/01/21 职场文书
高中英语教学反思范文
2016/03/02 职场文书
利用Python实现翻译HTML中的文本字符串
2022/06/21 Python