PHP上傳圖片類


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>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM