国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

PHP實現(xiàn)原生態(tài)圖片上傳封裝類方法

2024-05-04 23:51:58
字體:
供稿:網(wǎng)友

PHP圖片上傳類,經(jīng)典方式,不過上傳效率還算可以,我自己用過的一個類,當(dāng)時對這個類做了些修改,以滿足自己特定功能的需要,對PHP熟悉的,可對這個上傳類做優(yōu)化和修改,后附有調(diào)用方法,讓PHP開發(fā)者上傳圖片輕松容易就做到,先上類代碼:

<?phpclass FileUpload_Single{//user define -------------------------------------var $accessPath ;var $fileSize=200;var $defineTypeList="jpg|jpeg|gif|bmp";//string jpg|gif|bmp ...var $filePrefix= "useruplod_";//上傳后的文件名前綴,可設(shè)置為空var $changNameMode;//圖片改名的規(guī)則,暫時只有三類,值范圍 : 0 至 2 任一值var $uploadFile;//array upload file attributevar $newFileName;var $error;function TODO(){//main 主類:設(shè)好參數(shù),可以直接調(diào)用$pass = true ;if ( ! $this -> GetFileAttri() ){  $pass = false;}if( ! $this -> CheckFileMIMEType() ) { $pass = false; $this -> error .= die("<script language=/"javascript/">alert('圖片類型不正確,允許格式:jpg|jpeg|gif|bmp。');history.back()</script>");}if( ! $this -> CheckFileAttri_size() ){  $pass = false;  $this -> error .= die("<script language=/"javascript/">alert('上傳的文件太大,請確保在200K以內(nèi)。');history.back()</script>");  return false;}if ( ! $this -> MoveFileToNewPath() ){  $pass = false;  $this -> error .= die("<script language=/"javascript/">alert('上傳失敗!文件移動發(fā)生錯誤!');history.back()</script>");}  return $pass;}function GetFileAttri(){ foreach( $_FILES as $tmp ) {  $this -> uploadFile = $tmp; } return (empty( $this -> uploadFile[ 'name' ])) ? false : true;}function CheckFileAttri_size(){ if ( ! empty ( $this -> fileSize )) {  if ( is_numeric( $this -> fileSize ))  {  if ($this -> fileSize > 0)  {   return ($this -> uploadFile[ 'size' ] > $this -> fileSize * 1024) ? false : true ;  }   }  else  {  return false;  } } else {  return false; } } function ChangeFileName ($prefix = NULL , $mode) {// string $prefix , int $mode $fullName = (isset($prefix)) ? $prefix."_" : NULL ; switch ($mode) {  case 0  : $fullName .= rand( 0 , 100 ). "_" .strtolower(date ("ldSfFYhisa")) ; break;  case 1  : $fullName .= rand( 0 , 100 ). "_" .time(); break;  case 2  : $fullName .= rand( 0 , 10000 ) . time();  break;  default : $fullName .= rand( 0 , 10000 ) . time();  break; } return $fullName; } function MoveFileToNewPath() { $newFileName = NULL; $newFileName = $this -> ChangeFileName( $this -> filePrefix , 2 ). "." . $this -> GetFileTypeToString(); //檢查目錄是否存在,不存在則創(chuàng)建,當(dāng)時我用的時候添加了這個功能,覺得沒用的就注釋掉吧 /* $isFile = file_exists( $this -> accessPath); clearstatcache();  if( ! $isFile && !is_dir($this -> accessPath) )  {    echo $this -> accessPath;  @mkdir($this -> accessPath);  }*/$array_dir=explode("/",$this -> accessPath);//把多級目錄分別放到數(shù)組中 for($i=0;$i<count($array_dir);$i++){ $path .= $array_dir[$i]."/"; if(!file_exists($path)){  mkdir($path); } }/////////////////////////////////////////////////////////////////////////////////////////////////  if ( move_uploaded_file( $this -> uploadFile[ 'tmp_name' ] , realpath( $this -> accessPath ) . "/" .$newFileName ) )  {    $this -> newFileName = $newFileName;      return true;  }else{    return false;  }/////////////////////////////////////////////////////////////////////////////////////////////////}function CheckFileExist( $path = NULL) { return ($path == NULL) ? false : ((file_exists($path)) ? true : false); }function GetFileMIME() { return $this->GetFileTypeToString(); }function CheckFileMIMEType() { $pass = false; $defineTypeList = strtolower( $this ->defineTypeList); $MIME = strtolower( $this -> GetFileMIME()); if (!empty ($defineTypeList)) {  if (!empty ($MIME))  {  foreach(explode("|",$defineTypeList) as $tmp)  {   if ($tmp == $MIME)   {   $pass = true;   }  }  }  else  {  return false;  }     }  else  {  return false;  }  return $pass; } function GetFileTypeToString() { if( ! empty( $this -> uploadFile[ 'name' ] ) ) {  return substr( strtolower( $this -> uploadFile[ 'name' ] ) , strlen( $this -> uploadFile[ 'name' ] ) - 3 , 3 );  } }}?>

以下是PHP上傳類的調(diào)用方法,PHP代碼如下:

 <?phpinclude 'up.class.php';//加載PHP上傳類文件if (empty($HTTP_POST_FILES['image_file']['tmp_name']))//判斷接收數(shù)據(jù)是否為空{(diào)    $tmp = new FileUpload_Single;    $tmp -> accessPath ='upload';//圖片上傳的目錄,這里是當(dāng)前目錄下的upload目錄,可自己修改    if ( $tmp -> TODO() )    {      $filename=$tmp -> newFileName;//生成的文件名      echo "圖片上傳成功,路徑為:upload/".$filename;    }else{      echo $tmp -> error;    }     }else{  echo "沒有圖片數(shù)據(jù)可上傳";}?>

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持VeVb武林網(wǎng)。


注:相關(guān)教程知識閱讀請移步到PHP教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 信丰县| 遂川县| 自治县| 怀宁县| 惠东县| 冷水江市| 连山| 宁河县| 元江| 盐源县| 庐江县| 新平| 诸城市| 澄江县| 监利县| 卫辉市| 北川| 永泰县| 庆安县| 汝阳县| 榆社县| 天镇县| 灵寿县| 新龙县| 彭州市| 北安市| 平山县| 济阳县| 塔河县| 株洲县| 辽阳县| 张掖市| 广宁县| 望奎县| 大余县| 云和县| 齐齐哈尔市| 特克斯县| 穆棱市| 丹阳市| 社会|