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 相关文章推荐
在apache下限制每个虚拟主机的并发数!!!!
Oct 09 PHP
跟我学小偷程序之成功偷取首页(第三天)
Oct 09 PHP
解析:通过php socket并借助telnet实现简单的聊天程序
Jun 18 PHP
ThinkPHP2.0读取MSSQL提示Incorrect syntax near the keyword 'AS'的解决方法
Jun 25 PHP
PHP实现返回JSON和XML的类分享
Jan 28 PHP
PHP实现简单搜歌的方法
Jul 28 PHP
详解js异步文件加载器
Jan 24 PHP
postfixadmin忘记密码后的修改密码方法详解
Jul 20 PHP
PHP实现将标点符号正则替换为空格的方法
Aug 09 PHP
PHP简单实现欧拉函数Euler功能示例
Nov 06 PHP
php通过header发送自定义数据方法
Jan 18 PHP
Laravel使用Queue队列的技巧汇总
Sep 02 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
基于HBase Thrift接口的一些使用问题及相关注意事项的详解
2013/06/03 PHP
使用PHP实现蜘蛛访问日志统计
2013/07/05 PHP
关于PHP语言构造器介绍
2013/07/08 PHP
函数中使用require_once问题深入探讨 优雅的配置文件定义方法推荐
2014/07/02 PHP
ecshop 2.72如何修改后台访问地址
2015/03/03 PHP
一个简单的php MVC留言本实例代码(必看篇)
2016/09/22 PHP
完美解决在ThinkPHP控制器中命名空间的问题
2017/05/05 PHP
PHP实时统计中文字数和区别
2019/02/28 PHP
tp5框架无刷新分页实现方法分析
2019/09/26 PHP
javascript 获取网页参数系统
2008/07/19 Javascript
AppBaseJs 类库 网上常用的javascript函数及其他js类库写的
2010/03/04 Javascript
extjs grid设置某列背景颜色和字体颜色的方法
2010/09/03 Javascript
JQuery操作表格(隔行着色,高亮显示,筛选数据)
2012/02/23 Javascript
原生javascript实现图片无缝滚动效果
2016/02/12 Javascript
Angular.js中定时器循环的3种方法总结
2017/04/27 Javascript
Vue.js手风琴菜单组件开发实例
2017/05/16 Javascript
angular框架实现全选与单选chekbox的自定义
2017/07/06 Javascript
在Vue中如何使用Cookie操作实例
2017/07/27 Javascript
微信小程序之电影影评小程序制作代码
2017/08/03 Javascript
利用angular、react和vue实现相同的面试题组件
2018/02/19 Javascript
vue2.0项目实现路由跳转的方法详解
2018/06/21 Javascript
vue中Axios的封装与API接口的管理详解
2018/08/09 Javascript
微信小程序 wx:for 与 wx:for-items 与 wx:key的正确用法
2020/05/19 Javascript
[04:22]DOTA2上海特级锦标赛主赛事第四日TOP10
2016/03/06 DOTA
python实现的重启关机程序实例
2014/08/21 Python
Python实现数通设备端口使用情况监控实例
2015/07/15 Python
python基于pygame实现响应游戏中事件的方法(附源码)
2015/11/11 Python
python中利用队列asyncio.Queue进行通讯详解
2017/09/10 Python
HTML5 贪吃蛇游戏实现思路及源代码
2013/09/03 HTML / CSS
英国Iceland杂货店:网上食品购物
2020/12/16 全球购物
中医药大学市场营销专业自荐信
2013/09/29 职场文书
英文简历中的自我评价
2013/10/06 职场文书
开会迟到检讨书
2014/02/03 职场文书
空乘英文求职信
2014/04/13 职场文书
软件项目开发计划书
2014/05/01 职场文书
研究生就业推荐表导师评语
2014/12/31 职场文书