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 相关文章推荐
window+nginx+php环境配置 附配置搭配说明
Dec 29 PHP
PHP使用Session遇到的一个Permission denied Notice解决办法
Jul 30 PHP
php可生成缩略图的文件上传类实例
Dec 17 PHP
php中Snoopy类用法实例
Jun 19 PHP
CodeIgniter与PHP5.6的兼容问题
Jul 16 PHP
PHP发送短信代码分享
Aug 11 PHP
php图片添加水印例子
Jul 20 PHP
浅谈PHP的数据库接口和技术
Dec 09 PHP
php7基于递归实现删除空文件夹的方法示例
Jun 15 PHP
PHP处理bmp格式图片的方法分析
Jul 04 PHP
PHP数据对象映射模式实例分析
Mar 29 PHP
laravel框架的安装与路由实例分析
Oct 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利用cookie实现访问次数统计代码
2011/05/19 PHP
把1316这个数表示成两个数的和,其中一个为13的倍数,另一个是11的倍数,求这两个数。
2011/06/24 PHP
Linux下实现PHP多进程的方法分享
2012/08/16 PHP
使用php的HTTP请求的库Requests实现美女图片墙
2015/02/22 PHP
discuz论坛更换域名,详细文件修改步骤
2020/12/09 PHP
jQuery 全选效果实现代码
2009/03/23 Javascript
jquery实现点击弹出层效果的简单实例
2014/03/03 Javascript
jquery操作复选框checkbox的方法汇总
2015/02/05 Javascript
ECMAScript5(ES5)中bind方法使用小结
2015/05/07 Javascript
基于jQuery实现选取月份插件附源码下载
2015/12/28 Javascript
Underscore源码分析
2015/12/30 Javascript
JS中取二维数组中最大值的方法汇总
2016/04/17 Javascript
如何使用bootstrap框架 bootstrap入门必看!
2017/04/13 Javascript
基于vue 开发中出现警告问题去除方法
2018/01/25 Javascript
JS中‘hello’与new String(‘hello’)引出的问题详解
2018/08/14 Javascript
基于Fixed定位的框选功能的实现代码
2019/05/13 Javascript
javascript实现的字符串转换成数组操作示例
2019/06/13 Javascript
layui多iframe页面控制定时器运行的方法
2019/09/05 Javascript
基于vue与element实现创建试卷相关功能(实例代码)
2020/12/07 Vue.js
[19:24]DOTA2客户端使用指南 一分钟快速设置轻松超神
2013/09/24 DOTA
[49:43]VG vs FNATIC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
Python批量修改文件后缀的方法
2014/01/26 Python
python使用Tkinter显示网络图片的方法
2015/04/24 Python
python用Pygal如何生成漂亮的SVG图像详解
2017/02/10 Python
python 读取excel文件生成sql文件实例详解
2017/05/12 Python
pyqt5的QWebEngineView 使用模板的方法
2018/08/18 Python
Python 最大概率法进行汉语切分的方法
2018/12/14 Python
实例讲解Python中整数的最大值输出
2019/03/17 Python
Django 创建/删除用户的示例代码
2019/07/24 Python
python使用正则表达式(Regular Expression)方法超详细
2019/12/30 Python
微博营销计划书
2014/01/10 职场文书
电焊工岗位工作职责
2014/07/09 职场文书
总经理检讨书
2014/09/15 职场文书
国庆节促销广告语2014
2014/09/19 职场文书
六一儿童节新闻稿
2015/07/17 职场文书
js前端设计模式优化50%表单校验代码示例
2022/06/21 Javascript