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中文字母数字验证码实现代码
Apr 25 PHP
php cookie 登录验证示例代码
Mar 16 PHP
PHP session有效期问题
Apr 26 PHP
php empty() 检查一个变量是否为空
Nov 10 PHP
php 批量生成html,txt文件的实现代码
Jun 26 PHP
php5.3 注意事项说明
Jul 01 PHP
浅析PKI加密解密 OpenSSL
Jul 01 PHP
几道坑人的PHP面试题 试试看看你会不会也中招
Aug 19 PHP
PHP变量赋值、代入给JavaScript中的变量
Jun 29 PHP
ThinkPHP中html:list标签用法分析
Jan 09 PHP
laravel如何开启跨域功能示例详解
Aug 31 PHP
PHP数组对象与Json转换操作实例分析
Oct 22 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
PHP5 面向对象(学习记录)
2009/12/02 PHP
用Json实现PHP与JavaScript间数据交换的方法详解
2013/06/20 PHP
php中通过eval实现字符串格式的计算公式
2017/03/18 PHP
PHP使用PDO创建MySQL数据库、表及插入多条数据操作示例
2019/05/30 PHP
JScript中的&quot;this&quot;关键字使用方式补充材料
2007/03/08 Javascript
二行代码解决全部网页木马
2008/03/28 Javascript
Web前端设计模式  制作漂亮的弹出层
2010/10/29 Javascript
javascript显示用户停留时间的简单实例
2013/08/05 Javascript
鼠标经过tr时,改变tr当前背景颜色
2014/01/13 Javascript
判断是否存在子节点的实现代码
2016/05/18 Javascript
使用 vue.js 构建大型单页应用
2018/02/10 Javascript
解决vue中使用swiper插件问题及swiper在vue中的用法
2018/04/04 Javascript
JavaScript fetch接口案例解析
2018/08/30 Javascript
小程序分享链接onShareAppMessage的具体用法
2020/05/22 Javascript
vuex实现购物车功能
2020/06/28 Javascript
vue项目打包后请求地址错误/打包后跨域操作
2020/11/04 Javascript
[01:34]2014DOTA2展望TI 剑指西雅图VG战队专访
2014/06/30 DOTA
Python实现的一个自动售饮料程序代码分享
2014/08/25 Python
分析在Python中何种情况下需要使用断言
2015/04/01 Python
Tensorflow之构建自己的图片数据集TFrecords的方法
2018/02/07 Python
python3操作微信itchat实现发送图片
2018/02/24 Python
Python实用库 PrettyTable 学习笔记
2019/08/06 Python
Python读写文件模式和文件对象方法实例详解
2019/09/17 Python
使用python turtle画高达
2020/01/19 Python
利用python下载scihub成文献为PDF操作
2020/07/09 Python
Python用Jira库来操作Jira
2020/12/28 Python
HTML5在微信内置浏览器下右上角菜单的调整字体导致页面显示错乱的问题
2021/01/19 HTML / CSS
美国Max仓库:Max Warehouse
2020/05/31 全球购物
Fanatics官网:运动服装、球衣、运动装备
2020/10/12 全球购物
List、Map、Set三个接口,存取元素时,各有什么特点?
2015/09/27 面试题
商务经理岗位职责
2014/07/30 职场文书
迁户口计划生育证明
2014/10/19 职场文书
2014年学习委员工作总结
2014/11/14 职场文书
小学班主任事迹材料
2014/12/17 职场文书
格列夫游记读书笔记
2015/07/01 职场文书
如果用一句诗总结你的上半年,你会用哪句呢?
2019/07/16 职场文书