DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> AJAX入門 >> AJAX詳解 >> 自己寫的一個PHP上傳類
自己寫的一個PHP上傳類
編輯:AJAX詳解     

主要功能:
文件上傳,獲取文件名,獲取文件大小,隨機生成新文件名,獲取文件類型,圖片生成縮略圖,返回縮略圖文件名,返回上傳後生成的文件的文件名,返回上傳後的文件路徑

 


***********************************************************************

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 'M':
   return ($_FILES[$FormName]['size'])/(1024*1024);
   }
   
  }
 }
 
 //獲取文件類型
 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','upload');

/* 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>
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved