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> |