php上传图片类及用法示例


Posted in PHP onMay 11, 2016

本文实例讲述了php上传图片类及用法。分享给大家供大家参考,具体如下:

1.类文件名为:upclass.php

<?php
class upclass{
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=javascript>alert('$errorstr');location='javascript:history.go(-1)';</script>";
  exit();
 }
 function save(){
  $this->check_path();
  $this->check_size();
  $this->check_type();
  $this->up_photo();
  $this->showphoto();
 }
}
?>

2.html页面:

<form action="upphoto.php" method="post" enctype="multipart/form-data">
图片来源:<input type="file" name="photo" id="photo">
<input type="submit" name="submit" value="上传">
</form>

3.调用类的文件名为:upphoto.php

<?php
header("Content-Type:text/html; charset=utf-8"); 
//类的实例化:
include("upclass.php");//类的文件名是upoop.php
$up=new upclass();
$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();
}
?>
<?php
$images=$up->get_ph_name($_FILES['photo']['name']);
 echo "<img src='$images' />";
?>

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
mysql5写入和读出乱码解决
Nov 25 PHP
PHP 的 __FILE__ 常量
Jan 15 PHP
PHP 函数语法介绍一
Jun 14 PHP
SWFUpload与CI不能正确上传识别文件MIME类型解决方法分享
Apr 18 PHP
php5.3 goto函数介绍和示例
Mar 21 PHP
自己写了一个php检测文件编码的函数
Apr 21 PHP
PHP简单选择排序算法实例
Jan 26 PHP
PHP 5.3和PHP 5.4出现FastCGI Error解决方法
Feb 12 PHP
php微信开发接入
Aug 27 PHP
PHP+iframe图片上传实现即时刷新效果
Nov 18 PHP
PHP7扩展开发之基于函数方式使用lib库的方法详解
Jan 15 PHP
PHP 结合 Boostrap 结合 js 实现学生列表删除编辑及搜索功能
May 21 PHP
php通过smtp邮件验证登陆的方法
May 11 #PHP
Smarty变量用法详解
May 11 #PHP
基于PHP实现商品成交时发送短信功能
May 11 #PHP
Smarty环境配置与使用入门教程
May 11 #PHP
理解php依赖注入和控制反转
May 11 #PHP
php结合web uploader插件实现分片上传文件
May 10 #PHP
配置Nginx+PHP的正确思路与过程
May 10 #PHP
You might like
使用adodb lite解决问题
2006/12/31 PHP
php使用正则过滤js脚本代码实例
2014/05/10 PHP
destoon实现首页显示供应、企业、资讯条数的方法
2014/07/15 PHP
php自动识别文字编码并转换为目标编码的方法
2015/08/08 PHP
php 读取输出其他文件的实现方法
2016/07/26 PHP
php的无刷新操作实现方法分析
2020/02/28 PHP
JavaScript 脚本将当地时间转换成其它时区
2009/03/19 Javascript
javascript cookie操作类的实现代码小结附使用方法
2010/06/02 Javascript
常用Extjs工具:Extjs.util.Format使用方法
2012/03/22 Javascript
jQuery 淡出一个图像到另一个图像的实现代码
2013/06/12 Javascript
在JavaScript中实现类的方式探讨
2013/08/28 Javascript
html的DOM中document对象anchors集合用法实例
2015/01/21 Javascript
浅析Jquery操作select
2016/12/13 Javascript
微信小程序实现瀑布流布局与无限加载的方法详解
2017/05/12 Javascript
详解jQuery同步Ajax带来的UI线程阻塞问题及解决办法
2017/08/09 jQuery
JavaScript实现简单评论功能
2017/08/17 Javascript
解决element ui select下拉框不回显数据问题的解决
2019/02/20 Javascript
使用apifm-wxapi快速开发小程序过程详解
2019/08/05 Javascript
详解JavaScript数据类型和判断方法
2020/09/04 Javascript
python通过shutil实现快速文件复制的方法
2015/03/14 Python
Python批量修改文本文件内容的方法
2016/04/29 Python
简单了解Django模板的使用
2017/12/20 Python
Django如何使用jwt获取用户信息
2020/04/21 Python
python安装后的目录在哪里
2020/06/21 Python
Python模块常用四种安装方式
2020/10/20 Python
关于python中导入文件到list的问题
2020/10/31 Python
Python中对象的比较操作==和is区别详析
2021/02/12 Python
20世纪40年代连衣裙和复古服装:The Seamstress Of Bloomsbury
2018/07/24 全球购物
介绍一下MD5加密算法
2016/11/12 面试题
求职简历自荐信
2013/10/20 职场文书
课程设计的心得体会
2014/09/03 职场文书
认错检讨书
2014/10/02 职场文书
会计岗位职责
2015/02/03 职场文书
停发工资证明范本
2015/06/12 职场文书
创业计划书之酒吧
2019/12/02 职场文书
vue-cil之axios的二次封装与proxy反向代理使用说明
2022/04/07 Vue.js