PHP上传图片类

简介:
<?php
class  ieb_upload
{
     var  $FormName ; //文件域名称
     var  $Directroy ; //上传至目录
     var  $MaxSize ; //最大上传大小
     var  $CanUpload ; //是否可以上传
     var  $doUpFile ; //上传的文件名
     var  $sm_File ; //缩略图名称
     var  $Error ; //错误参数
     
     function  ieb_upload( $formName  = '' , $dirPath  = '' , $maxSize  = 2097152) // (1024*2)*1024=2097152 就是 2M
     {
         global  $FormName , $Directroy , $MaxSize , $CanUpload , $Error , $doUpFile , $sm_File ;
         // 初始化各种参数
         $FormName  = $formName ;
         $MaxSize  = $maxSize ;
         $CanUpload  = true;
         $doUpFile  = '' ;
         $sm_File  = '' ;
         $Error  = 0;
 
         if  ( $formName  == '' )
         {
             $CanUpload  = false;
             $Error  = 1;
             break ;
         }
 
         if  ( $dirPath  == '' )
             $Directroy  = $dirPath ;
         else
             $Directroy  = $dirPath . '/' ;
     }
     // 检查文件是否存在
     function  scanFile()
     {
         global  $FormName , $Error , $CanUpload ;
 
         if  ( $CanUpload )
         {
             $scan  = is_readable ( $_FILES [ $FormName ][ 'name' ]);
 
             if  ( $scan )
                 $Error  = 2;
 
             return  $scan ;
         }
     }
     // 获取文件大小
     function  getSize( $format  = 'B' )
     {
         global  $FormName , $Error , $CanUpload ;
 
         if  ( $CanUpload )
         {
             if  ( $_FILES [ $FormName ][ 'size' ] == 0)
             {
                 $Error  = 3;
                 $CanUpload  = false;
             }
 
             switch  ( $format )
             {
                 case  'B' :
                     return  $_FILES [ $FormName ][ 'size' ];
                     break ;
 
                 case  'K' :
                     return  ( $_FILES [ $FormName ][ 'size' ]) / (1024);
                     break ;
 
                 case  'M' :
                     return  ( $_FILES [ $FormName ][ 'size' ]) / (1024 * 1024);
                     break ;
             }
         }
     }
     // 获取文件类型
     function  getExt()
     {
         global  $FormName , $Error , $CanUpload ;
 
         if  ( $CanUpload )
         {
             $ext  = $_FILES [ $FormName ][ 'name' ];
             $extStr  = explode ( '.' , $ext );
             $count  = count ( $extStr )-1;
         }
         return  $extStr [ $count ];
     }
     // 获取文件名称
     function  getName()
     {
         global  $FormName , $CanUpload ;
 
         if  ( $CanUpload )
             return  $_FILES [ $FormName ][ 'name' ];
     }
     // 新建文件名
     function  newName()
     {
         global  $CanUpload , $FormName ;
 
         if  ( $CanUpload )
         {
             $FullName  = $_FILES [ $FormName ][ 'name' ];
             $extStr  = explode ( '.' , $FullName );
             $count  = count ( $extStr )-1;
             $ext  = $extStr [ $count ];
 
             return  date ( 'YmdHis' ).rand(0, 9). '.' . $ext ;
         }
     }
     // 上传文件
     function  upload( $fileName  = '' )
     {
         global  $FormName , $Directroy , $CanUpload , $Error , $doUpFile ;
 
         if  ( $CanUpload )
         {
             if  ( $_FILES [ $FormName ][ 'size' ] == 0)
             {
                 $Error  = 3;
                 $CanUpload  = false;
                 return  $Error ;
                 break ;
             }
         }
 
         if  ( $CanUpload )
         {
             if  ( $fileName  == '' )
                 $fileName  = $_FILES [ $FormName ][ 'name' ];
 
             $doUpload  = @ copy ( $_FILES [ $FormName ][ 'tmp_name' ], $Directroy . $fileName );
 
             if  ( $doUpload )
             {
                 $doUpFile  = $fileName ;
                 chmod ( $Directroy . $fileName , 0777);
                 return  true;
             }
             else
             {
                 $Error  = 4;
                 return  $Error ;
             }
         }
     }
     // 创建图片缩略图
     function  thumb( $dscChar  = '' , $width  = 150, $height  = 113)
     {
         global  $CanUpload , $Error , $Directroy , $doUpFile , $sm_File ;
 
         if  ( $CanUpload  && $doUpFile  != '' )
         {
             $srcFile  = $doUpFile ;
 
             if  ( $dscChar  == '' )
                 $dscChar  = 'sm_' ;
 
             $dscFile  = $Directroy . $dscChar . $srcFile ;
             $data  = getimagesize ( $Directroy . $srcFile , & $info );
 
             switch  ( $data [2])
             {
                 case  1:
                     $im  = @imagecreatefromgif( $Directroy . $srcFile );
                     break ;
 
                 case  2:
                     $im  = @imagecreatefromjpeg( $Directroy . $srcFile );
                     break ;
 
                 case  3:
                     $im  = @imagecreatefrompng( $Directroy . $srcFile );
                     break ;
             }
 
             $srcW  = imagesx( $im );
             $srcH  = imagesy( $im );
             $ni  = imagecreatetruecolor( $width , $height );
             imagecopyresized( $ni , $im , 0, 0, 0, 0, $width , $height , $srcW , $srcH );
             $cr  = imagejpeg( $ni , $dscFile );
             chmod ( $dscFile , 0777);
 
             if  ( $cr )
             {
                 $sm_File  = $dscFile ;
                 return  true;
             }
             else
             {
                 $Error  = 5;
                 return  $Error ;
             }
         }
     }
     // 显示错误参数
     function  Err()
     {
         global  $Error ;
         return  $Error ;
     }
     // 上传后的文件名
     function  UpFile()
     {
         global  $doUpFile , $Error ;
         if  ( $doUpFile  != '' )
             return  $doUpFile ;
         else
             $Error  = 6;
     }
     // 上传文件的路径
     function  filePath()
     {
         global  $Directroy , $doUpFile , $Error ;
         if  ( $doUpFile  != '' )
             return  $Directroy . $doUpFile ;
         else
             $Error  = 6;
     }
     // 缩略图文件名称
     function  thumbMap()
     {
         global  $sm_File , $Error ;
         if  ( $sm_File  != '' )
             return  $sm_File ;
         else
             $Error  = 6;
     }
     // 显示版本信息
     function  ieb_version()
     {
         return  'IEB_UPLOAD CLASS Ver 1.1' ;
     }
}
 
?>

使用方法

<?php
// 加载上传类
// include('ieb_upload.inc');
?>
 
<html>
<head>
<meta http-equiv= "Content-Type"  content= "text/html; charset=gb2312" >
<title>无标题文档</title>
</head>
 
<body style= "font-size:12px;" >
<form action= ""  method= "post"  enctype= "multipart/form-data"  name= "form1" >
<input type= "file"  name= "file" >
<input type= "submit"  name= "Submit"  value= "提交" >
<input name= "scan"  type= "hidden"  id= "up"  value= "true" >
</form><b /><br/>
 
<?php
if  (isset( $_REQUEST [ 'scan' ]))
{
     // 声明一个上传类
     $upfos  = new  ieb_upload( 'file' , 'tmp' );
 
     /**
      * ieb_upload( FormName, [Directroy, MaxSize])
      *
      *   FormName: 文件域的名称,这个例子里用的是 file 。这个参数不能省略。
      *   Directroy: 保存上传文件的目录名称。此参数如果省略,文件将上传至该处理页目录中。
      *   MaxSize: 允许上传的文件的大小限制。默认值为 2097152 byte (即 2M)。
      */
     // 返回将要上传的文件名称
     echo  '文件名称:' . $upfos ->getName(). '<br/>' ;
     // 返回文件后缀名
     echo  '文件类型:' . $upfos ->getExt(). '<br/>' ;
     // 返回文件大小
     echo  '文件大小:' . $upfos ->getSize(). '<br/>' ;
 
     /**
      * getSize( format )
      *
      *   format: 返回文件大小的单位值。默认值为 B。
      *   B 为 byte
      *   M 为 MB
      *   例:getSize( 'B' );
      */
     // 随机生成的文件名
     echo  '随机文件:' . $upfos ->newName(). '<br/>' ;
 
     /**
      * 建议使用随机生成的文件名,以避免上传重名的文件。
      * 例如: $upfos->upload ( $upfos->newName());
      */
     // 上传文件
     $upfos ->upload();
 
     /**
      * upload( filename )
      *
      *   filename: 上传至服务器后生成这个文件名。默认值为原来的文件名。
      */
     // 生成缩略图
     $upfos ->thumb();
 
     /**
      * thumb( [key, width, height] )
      *
      *   key: 生成缩略图的关键字。默认值为"sm_"。如果上传的文件名为 12345.jpg,缩略图的文件名就为 sm_12345.jpg。
      *   width: 缩略图的宽度。默认值为 150 。
      *   height: 缩略图的高度。默认值为 113。
      *   例:$upfos->thumb ( 'slt_', 200, 140);
      */
     // 返回生成的文件名
     echo  '生成文件:' . $upfos ->UpFile(). '<br/>' ;
     // 返回文件的路径
     echo  '文件路径:' . $upfos ->filePath(). '<br/>' ;
     // 返回缩略图的名称
     echo  '缩略图片:' . $upfos ->thumbMap(). '<br/>' ;
     // 返回上传类版本信息
     echo  '版本信息:' . $upfos ->ieb_version(). '<br/>' ;
}
?>
</body>
</html>

php上传图片类

<?php
class  ieb_upload
{
     var  $FormName ; //文件域名称
     var  $Directroy ; //上传至目录
     var  $MaxSize ; //最大上传大小
     var  $CanUpload ; //是否可以上传
     var  $doUpFile ; //上传的文件名
     var  $sm_File ; //缩略图名称
     var  $Error ; //错误参数
     
     function  ieb_upload( $formName  = '' , $dirPath  = '' , $maxSize  = 2097152) // (1024*2)*1024=2097152 就是 2M
     {
         global  $FormName , $Directroy , $MaxSize , $CanUpload , $Error , $doUpFile , $sm_File ;
         // 初始化各种参数
         $FormName  = $formName ;
         $MaxSize  = $maxSize ;
         $CanUpload  = true;
         $doUpFile  = '' ;
         $sm_File  = '' ;
         $Error  = 0;
 
         if  ( $formName  == '' )
         {
             $CanUpload  = false;
             $Error  = 1;
             break ;
         }
 
         if  ( $dirPath  == '' )
             $Directroy  = $dirPath ;
         else
             $Directroy  = $dirPath . '/' ;
     }
     // 检查文件是否存在
     function  scanFile()
     {
         global  $FormName , $Error , $CanUpload ;
 
         if  ( $CanUpload )
         {
             $scan  = is_readable ( $_FILES [ $FormName ][ 'name' ]);
 
             if  ( $scan )
                 $Error  = 2;
 
             return  $scan ;
         }
     }
     // 获取文件大小
     function  getSize( $format  = 'B' )
     {
         global  $FormName , $Error , $CanUpload ;
 
         if  ( $CanUpload )
         {
             if  ( $_FILES [ $FormName ][ 'size' ] == 0)
             {
                 $Error  = 3;
                 $CanUpload  = false;
             }
 
             switch  ( $format )
             {
                 case  'B' :
                     return  $_FILES [ $FormName ][ 'size' ];
                     break ;
 
                 case  'K' :
                     return  ( $_FILES [ $FormName ][ 'size' ]) / (1024);
                     break ;
 
                 case  'M' :
                     return  ( $_FILES [ $FormName ][ 'size' ]) / (1024 * 1024);
                     break ;
             }
         }
     }
     // 获取文件类型
     function  getExt()
     {
         global  $FormName , $Error , $CanUpload ;
 
         if  ( $CanUpload )
         {
             $ext  = $_FILES [ $FormName ][ 'name' ];
             $extStr  = explode ( '.' , $ext );
             $count  = count ( $extStr )-1;
         }
         return  $extStr [ $count ];
     }
     // 获取文件名称
     function  getName()
     {
         global  $FormName , $CanUpload ;
 
         if  ( $CanUpload )
             return  $_FILES [ $FormName ][ 'name' ];
     }
     // 新建文件名
     function  newName()
     {
         global  $CanUpload , $FormName ;
 
         if  ( $CanUpload )
         {
             $FullName  = $_FILES [ $FormName ][ 'name' ];
             $extStr  = explode ( '.' , $FullName );
             $count  = count ( $extStr )-1;
             $ext  = $extStr [ $count ];
 
             return  date ( 'YmdHis' ).rand(0, 9). '.' . $ext ;
         }
     }
     // 上传文件
     function  upload( $fileName  = '' )
     {
         global  $FormName , $Directroy , $CanUpload , $Error , $doUpFile ;
 
         if  ( $CanUpload )
         {
             if  ( $_FILES [ $FormName ][ 'size' ] == 0)
             {
                 $Error  = 3;
                 $CanUpload  = false;
                 return  $Error ;
                 break ;
             }
         }
 
         if  ( $CanUpload )
         {
             if  ( $fileName  == '' )
                 $fileName  = $_FILES [ $FormName ][ 'name' ];
 
             $doUpload  = @ copy ( $_FILES [ $FormName ][ 'tmp_name' ], $Directroy . $fileName );
 
             if  ( $doUpload )
             {
                 $doUpFile  = $fileName ;
                 chmod ( $Directroy . $fileName , 0777);
                 return  true;
             }
             else
             {
                 $Error  = 4;
                 return  $Error ;
             }
         }
     }
     // 创建图片缩略图
     function  thumb( $dscChar  = '' , $width  = 150, $height  = 113)
     {
         global  $CanUpload , $Error , $Directroy , $doUpFile , $sm_File ;
 
         if  ( $CanUpload  && $doUpFile  != '' )
         {
             $srcFile  = $doUpFile ;
 
             if  ( $dscChar  == '' )
                 $dscChar  = 'sm_' ;
 
             $dscFile  = $Directroy . $dscChar . $srcFile ;
             $data  = getimagesize ( $Directroy . $srcFile , & $info );
 
             switch  ( $data [2])
             {
                 case  1:
                     $im  = @imagecreatefromgif( $Directroy . $srcFile );
                     break ;
 
                 case  2:
                     $im  = @imagecreatefromjpeg( $Directroy . $srcFile );
                     break ;
 
                 case  3:
                     $im  = @imagecreatefrompng( $Directroy . $srcFile );
                     break ;
             }
 
             $srcW  = imagesx( $im );
             $srcH  = imagesy( $im );
             $ni  = imagecreatetruecolor( $width , $height );
             imagecopyresized( $ni , $im , 0, 0, 0, 0, $width , $height , $srcW , $srcH );
             $cr  = imagejpeg( $ni , $dscFile );
             chmod ( $dscFile , 0777);
 
             if  ( $cr )
             {
                 $sm_File  = $dscFile ;
                 return  true;
             }
             else
             {
                 $Error  = 5;
                 return  $Error ;
             }
         }
     }
     // 显示错误参数
     function  Err()
     {
         global  $Error ;
         return  $Error ;
     }
     // 上传后的文件名
     function  UpFile()
     {
         global  $doUpFile , $Error ;
         if  ( $doUpFile  != '' )
             return  $doUpFile ;
         else
             $Error  = 6;
     }
     // 上传文件的路径
     function  filePath()
     {
         global  $Directroy , $doUpFile , $Error ;
         if  ( $doUpFile  != '' )
             return  $Directroy . $doUpFile ;
         else
             $Error  = 6;
     }
     // 缩略图文件名称
     function  thumbMap()
     {
         global  $sm_File , $Error ;
         if  ( $sm_File  != '' )
             return  $sm_File ;
         else
             $Error  = 6;
     }
     // 显示版本信息
     function  ieb_version()
     {
         return  'IEB_UPLOAD CLASS Ver 1.1' ;
     }
}
 
?>

使用方法

<?php
// 加载上传类
// include('ieb_upload.inc');
?>
 
<html>
<head>
<meta http-equiv= "Content-Type"  content= "text/html; charset=gb2312" >
<title>无标题文档</title>
</head>
 
<body style= "font-size:12px;" >
<form action= ""  method= "post"  enctype= "multipart/form-data"  name= "form1" >
<input type= "file"  name= "file" >
<input type= "submit"  name= "Submit"  value= "提交" >
<input name= "scan"  type= "hidden"  id= "up"  value= "true" >
</form><b /><br/>
 
<?php
if  (isset( $_REQUEST [ 'scan' ]))
{
     // 声明一个上传类
     $upfos  = new  ieb_upload( 'file' , 'tmp' );
 
     /**
      * ieb_upload( FormName, [Directroy, MaxSize])
      *
      *   FormName: 文件域的名称,这个例子里用的是 file 。这个参数不能省略。
      *   Directroy: 保存上传文件的目录名称。此参数如果省略,文件将上传至该处理页目录中。
      *   MaxSize: 允许上传的文件的大小限制。默认值为 2097152 byte (即 2M)。
      */
     // 返回将要上传的文件名称
     echo  '文件名称:' . $upfos ->getName(). '<br/>' ;
     // 返回文件后缀名
     echo  '文件类型:' . $upfos ->getExt(). '<br/>' ;
     // 返回文件大小
     echo  '文件大小:' . $upfos ->getSize(). '<br/>' ;
 
     /**
      * getSize( format )
      *
      *   format: 返回文件大小的单位值。默认值为 B。
      *   B 为 byte
      *   M 为 MB
      *   例:getSize( 'B' );
      */
     // 随机生成的文件名
     echo  '随机文件:' . $upfos ->newName(). '<br/>' ;
 
     /**
      * 建议使用随机生成的文件名,以避免上传重名的文件。
      * 例如: $upfos->upload ( $upfos->newName());
      */
     // 上传文件
     $upfos ->upload();
 
     /**
      * upload( filename )
      *
      *   filename: 上传至服务器后生成这个文件名。默认值为原来的文件名。
      */
     // 生成缩略图
     $upfos ->thumb();
 
     /**
      * thumb( [key, width, height] )
      *
      *   key: 生成缩略图的关键字。默认值为"sm_"。如果上传的文件名为 12345.jpg,缩略图的文件名就为 sm_12345.jpg。
      *   width: 缩略图的宽度。默认值为 150 。
      *   height: 缩略图的高度。默认值为 113。
      *   例:$upfos->thumb ( 'slt_', 200, 140);
      */
     // 返回生成的文件名
     echo  '生成文件:' . $upfos ->UpFile(). '<br/>' ;
     // 返回文件的路径
     echo  '文件路径:' . $upfos ->filePath(). '<br/>' ;
     // 返回缩略图的名称
     echo  '缩略图片:' . $upfos ->thumbMap(). '<br/>' ;
     // 返回上传类版本信息
     echo  '版本信息:' . $upfos ->ieb_version(). '<br/>' ;
}
?>
</body>
</html>

本文转自博客园知识天地的博客,原文链接:PHP上传图片类,如需转载请自行联系原博主。

相关文章
|
5月前
|
Java 程序员 PHP
PHP对象和类
PHP对象和类
49 0
|
5月前
|
PHP
使用PHP实现随机调用图片
使用PHP实现随机调用图片
182 0
使用PHP实现随机调用图片
|
10月前
|
小程序 PHP 数据安全/隐私保护
php图片加水印函数
这里分享下php给图片加水印的几个自定义函数 给图片加水印首先需要开启GD库。 用到的php函数是imagecopymerge () 和 imagecopy () imagecopymerge 函数可以支持两个图像叠加时,设置叠加的透明度
75 0
|
9天前
|
设计模式 SQL 安全
PHP中的设计模式:单例模式的深入探索与实践在PHP的编程实践中,设计模式是解决常见软件设计问题的最佳实践。单例模式作为设计模式中的一种,确保一个类只有一个实例,并提供全局访问点,广泛应用于配置管理、日志记录和测试框架等场景。本文将深入探讨单例模式的原理、实现方式及其在PHP中的应用,帮助开发者更好地理解和运用这一设计模式。
在PHP开发中,单例模式通过确保类仅有一个实例并提供一个全局访问点,有效管理和访问共享资源。本文详细介绍了单例模式的概念、PHP实现方式及应用场景,并通过具体代码示例展示如何在PHP中实现单例模式以及如何在实际项目中正确使用它来优化代码结构和性能。
|
19天前
|
PHP
PHP中的面向对象编程:理解类与对象
本文将深入探讨PHP中面向对象编程的核心概念——类与对象。通过实例讲解,帮助读者更好地理解如何在PHP中运用OOP编写更高效、可维护的代码。
23 9
|
5月前
|
关系型数据库 MySQL
web简易开发(二){html5+php实现文件上传及通过关键字搜索已上传图片)}
web简易开发(二){html5+php实现文件上传及通过关键字搜索已上传图片)}
|
2月前
|
PHP 开发者
PHP中的面向对象编程:掌握类与对象的精髓
探索PHP的面向对象编程世界,本文将带你了解如何通过创建和操作类来实例化对象。我们将深入讲解类的声明、构造函数的使用以及继承和多态性的概念。准备好,让我们一起在代码的海洋中航行,揭开PHP对象编程的神秘面纱!
|
3月前
|
数据采集 缓存 自然语言处理
PHP将HTML标签转化为图片
通过这个方法,PHP后端能够实现将HTML内容转化为图片的功能。这种方式虽然牵涉到一些额外的安装和配置,但能够相对灵活且稳定地解冀转换需求,适用于需要在后端动态生成图片的场景。
75 1
|
4月前
|
PHP
php使用curl新增微信临时素材(上传图片)
php使用curl新增微信临时素材(上传图片)
205 4
|
3月前
|
PHP
如何在PHP中创建一个自定义的观察者类?
【7月更文挑战第2天】如何在PHP中创建一个自定义的观察者类?
22 0