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 巧用数组降低程序的时间复杂度
Jan 01 PHP
php下删除一篇文章生成的多个静态页面
Aug 08 PHP
深入密码加salt原理的分析
Jun 06 PHP
PHP写日志的实现方法
Nov 05 PHP
PIGCMS 如何关闭聊天机器人
Feb 12 PHP
php实现用于验证所有类型的信用卡类
Mar 24 PHP
PHP实现仿Google分页效果的分页函数
Jul 29 PHP
PHP实现多维数组转字符串和多维数组转一维数组的方法
Aug 08 PHP
Yii2框架实现数据库常用操作总结
Feb 08 PHP
PHP+jQuery实现滚屏无刷新动态加载数据功能详解
May 04 PHP
基于swoole实现多人聊天室
Jun 14 PHP
PHP addcslashes()函数讲解
Feb 03 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
2006/12/14 PHP
IIS php环境配置PHP5 MySQL5 ZendOptimizer phpmyadmin安装与配置
2008/11/18 PHP
JS中encodeURIComponent函数用php解码的代码
2012/03/01 PHP
php中文验证码实现方法
2015/06/18 PHP
WordPress中访客登陆实现邮件提醒的PHP脚本实例分享
2015/12/14 PHP
调试php程序的简单步骤
2019/10/04 PHP
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
2020/03/26 PHP
ext checkboxgroup 回填数据解决
2009/08/21 Javascript
用显卡加速,轻松把笔记本打造成取暖器的办法!
2013/04/17 Javascript
自己实现ajax封装示例分享
2014/04/01 Javascript
jQuery实现鼠标单击网页文字后在文本框显示的方法
2015/05/06 Javascript
javascript 应用小技巧方法汇总
2015/07/05 Javascript
jQuery点击其他地方时菜单消失的实现方法
2016/04/22 Javascript
BootStrap Typeahead自动补全插件实例代码
2016/08/10 Javascript
JavaScript仿网易选项卡制作代码
2016/10/06 Javascript
正则表达式替换html元素属性的方法
2016/11/26 Javascript
vue2实现移动端上传、预览、压缩图片解决拍照旋转问题
2017/04/13 Javascript
原生JS实现隐藏显示图片 JS实现点击切换图片效果
2021/01/27 Javascript
windows系统下更新nodejs版本的方案
2017/11/24 NodeJs
微信小程序实现点击文字页面跳转功能【附源码下载】
2017/12/12 Javascript
VUE重点问题总结
2018/03/19 Javascript
AngularJS上传文件的示例代码
2018/11/10 Javascript
Vue + ts实现轮播插件的示例
2020/11/10 Javascript
Python随机生成均匀分布在三角形内或者任意多边形内的点
2017/12/14 Python
Python中新式类与经典类的区别详析
2019/07/10 Python
html5设计原理(推荐收藏)
2014/05/17 HTML / CSS
健身场所或家用健身设备:Life Fitness
2017/11/01 全球购物
中国汽车租赁行业头部企业:一嗨租车
2019/05/16 全球购物
英国领先的游戏零售商:GAME
2019/09/24 全球购物
请说出几个常用的异常类
2013/01/08 面试题
介绍一下XMLHttpRequest对象的常用方法和属性
2013/05/24 面试题
婚纱摄影师求职信
2014/03/07 职场文书
村干部承诺书
2014/03/28 职场文书
学习十八大的心得体会
2014/09/01 职场文书
学校2015年纠风工作总结
2015/05/15 职场文书
十大最强妖精系宝可梦,哲尔尼亚斯实力最强,第五被称为大力士
2022/03/18 日漫