php簡單的上傳類分享,php上傳分享_PHP教程
Jul 12, 2016 am 08:52 AMphp簡單的上傳類分享,php上傳分享
本文實例為大家分享了php上傳類,供大家參考,具體內(nèi)容如下
<?php class UploadFile{ var $inputName; //控件名 var $allowType = array( 'image/gif','image/jpg','image/jpeg','image/png','image/x-png','image/pjpeg' ); //上傳類型 var $allowSize = 2097152; //限制大小 var $saveDir = UPLOAD; //保存目錄 var $isRename = true; //是否重命名,默認為true var $errID = 0; //錯誤代碼,默認為0 var $errMsg = ""; //錯誤信息 var $savePath = ""; //保存路徑 function __construct($inputName,$allowType="",$allowSize="",$saveDir="",$isRename=true){ if(empty($inputName)){ $this->chk_err(-1); //無傳入控件名 }else{ $this->inputName = $inputName; } if(!empty($allowType)) $this->allowType = $allowType; if(!empty($allowSize)) $this->allowSize = $allowSize; if(!empty($saveDir)) $this->saveDir = $saveDir; if(!empty($isRename)) $this->isRename = $isRename; } function is_uploaded(){ if(empty($_FILES[$this->inputName]['name'])){ $this->chk_err(4); //沒有文件被上傳 }else{ if(is_uploaded_file($_FILES[$this->inputName]['tmp_name'])){ return true; }else{ $this->chk_err(-2); //文件上傳不合法 } } } function chk_type(){ if(!in_array($_FILES[$this->inputName]['type'],$this->allowType)){ $this->chk_err(-3); //上傳的文件類型不被允許 }else{ return true; } } function chk_size(){ if($_FILES[$this->inputName]['size'] > $this->allowSize){ $this->chk_(-4); //上傳的文件過大 }else{ return true; } } function move_uploaded(){ //移動上傳文件 if(!$this->is_uploaded()){ return false; } if(!$this->chk_size()){ return false; } if(!$this->chk_type()){ return false; } //重命名 if($this->isRename){ $arrTmp = pathinfo($_FILES[$this->inputName]['name']); $extension = strtolower($arrTmp['extension']); $file_newname = date("YmdHis").rand(1000,9999)."00.".$extension; //重命名新文件, 00表示為上傳的為原圖 }else{ $file_newname = $_FILES[$this->inputName]['name']; } if(!file_exists($this->saveDir)){ //判斷保存目錄是否存在 mkdir($this->saveDir,0777,true); //建立保存目錄 } //移動文件 $result = move_uploaded_file($_FILES[$this->inputName]['tmp_name'],$this->saveDir."/".$file_newname); if($result){ $path = $this->savePath = $this->saveDir.$file_newname; //文件的成功保存路徑 return $path; }else{ $this->chk_err($_FILES[$this->inputName]['error']); } } //判斷出錯信息 function chk_err($errID){ $this->errID = $errID; switch($this->errID){ case -4: $this->errMsg = "上傳的文件過大"; break; case -3: $this->errMsg = "上傳的文件類型不被允許"; break; case -2: $this->errMsg = "文件上傳不合法"; break; case -1: $this->errMsg = "無控件名傳入"; break; case 1: $this->errMsg = '上傳的文件超出了php.ini中upload_max_filesize設(shè)定的最大值'; break; case 2: $this->errMsg = '上傳文件的大小超過了HTML表單中MAX_FILE_SIZE選項指定的值'; break; case 3: $this->errMsg = '文件只有部分被上傳'; break; case 4: $this->errMsg = '沒有文件被上傳'; break; default: break; } return false; } function get_errMsg(){ echo $this->errMsg; //輸出錯誤信息 } /** +---------------------------------------------------------- * 取得圖像信息 * +---------------------------------------------------------- * @static * @access public +---------------------------------------------------------- * @param string $image 圖像文件名 +---------------------------------------------------------- * @return mixed +---------------------------------------------------------- */ function getImageInfo($img) { $imageInfo = getimagesize($img); if( $imageInfo!== false) { $imageType = strtolower(substr(image_type_to_extension($imageInfo[2]),1)); $imageSize = filesize($img); $info = array( "width" =>$imageInfo[0], "height" =>$imageInfo[1], "type" =>$imageType, "size" =>$imageSize, "mime" =>$imageInfo['mime'], ); return $info; }else { return false; } } /** +---------------------------------------------------------- * 生成縮略圖 +---------------------------------------------------------- * @static * @access public +---------------------------------------------------------- * @param string $image 原圖 * @param string $type 圖像格式 * @param string $thumbname 縮略圖文件名 * @param string $maxWidth 寬度 * @param string $maxHeight 高度 * @param string $position 縮略圖保存目錄 * @param boolean $interlace 啟用隔行掃描 * @param boolean $is_save 是否保留原圖 +---------------------------------------------------------- * @return void +---------------------------------------------------------- */ function thumb($image,$is_save=true,$suofang=0,$type='',$maxWidth=500,$maxHeight=500,$interlace=true){ // 獲取原圖信息 $info = $this->getImageInfo($image); if($info !== false) { $srcWidth = $info['width']; $srcHeight = $info['height']; $type = empty($type)?$info['type']:$type; $type = strtolower($type); $interlace = $interlace? 1:0; unset($info); if ($suofang==1) { $width = $srcWidth; $height = $srcHeight; } else { $scale = min($maxWidth/$srcWidth, $maxHeight/$srcHeight); // 計算縮放比例 if($scale>=1) { // 超過原圖大小不再縮略 $width = $srcWidth; $height = $srcHeight; }else{ // 縮略圖尺寸 $width = (int)($srcWidth*$scale); //147 $height = (int)($srcHeight*$scale); //199 } } // 載入原圖 $createFun = 'ImageCreateFrom'.($type=='jpg'?'jpeg':$type); $srcImg = $createFun($image); //創(chuàng)建縮略圖 if($type!='gif' && function_exists('imagecreatetruecolor')) $thumbImg = imagecreatetruecolor($width, $height); else $thumbImg = imagecreate($width, $height); // 復制圖片 if(function_exists("ImageCopyResampled")) imagecopyresampled($thumbImg, $srcImg, 0, 0, 0, 0, $width, $height, $srcWidth,$srcHeight); else imagecopyresized($thumbImg, $srcImg, 0, 0, 0, 0, $width, $height, $srcWidth,$srcHeight); if('gif'==$type || 'png'==$type) { //imagealphablending($thumbImg, false);//取消默認的混色模式 //imagesavealpha($thumbImg,true);//設(shè)定保存完整的 alpha 通道信息 $background_color = imagecolorallocate($thumbImg, 0,255,0); // 指派一個綠色 imagecolortransparent($thumbImg,$background_color); // 設(shè)置為透明色,若注釋掉該行則輸出綠色的圖 } // 對jpeg圖形設(shè)置隔行掃描 if('jpg'==$type || 'jpeg'==$type) imageinterlace($thumbImg,$interlace); //$gray=ImageColorAllocate($thumbImg,255,0,0); //ImageString($thumbImg,2,5,5,"ThinkPHP",$gray); // 生成圖片 $imageFun = 'image'.($type=='jpg'?'jpeg':$type); $length = strlen("00.".$type) * (-1); $_type = substr($image,-4); $length = ($type != $_type ? $length+1 : $length); //裁剪 if ($suofang==1) { $thumbname01 = substr_replace($image,"01.".$type,$length); //大頭像 $thumbname02 = substr_replace($image,"02.".$type,$length); //小頭像 $imageFun($thumbImg,$thumbname01,100); $imageFun($thumbImg,$thumbname02,100); $thumbImg01 = imagecreatetruecolor(190,195); imagecopyresampled($thumbImg01,$thumbImg,0,0,$_POST['x'],$_POST['y'],190,195,$_POST['w'],$_POST['h']); $thumbImg02 = imagecreatetruecolor(48,48); imagecopyresampled($thumbImg02,$thumbImg,0,0,$_POST['x'],$_POST['y'],48,48,$_POST['w'],$_POST['h']); $imageFun($thumbImg01,$thumbname01,100); $imageFun($thumbImg02,$thumbname02,100); // unlink($image); imagedestroy($thumbImg01); imagedestroy($thumbImg02); imagedestroy($thumbImg); imagedestroy($srcImg); return array('big' => $thumbname01 , 'small' => $thumbname02); //返回包含大小頭像路徑的數(shù)組 }else{ if($is_save == false){ //縮略圖覆蓋原圖,縮略圖的路徑還是原圖路徑 $imageFun($thumbImg,$image,100); }else{ $thumbname03 = substr_replace($image,"03.".$type,$length); //縮略圖與原圖同時存在, $imageFun($thumbImg,$thumbname03,100); imagedestroy($thumbImg); imagedestroy($srcImg); return $thumbname03 ; //返回縮略圖的路徑,字符串 } } } return false; } }
以上就是本文的全部內(nèi)容,希望對大家學習php程序設(shè)計有所幫助。

? AI ??

Undress AI Tool
??? ???? ??

Undresser.AI Undress
???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover
???? ?? ???? ??? AI ?????.

Clothoff.io
AI ? ???

Video Face Swap
??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

?? ??

??? ??

???++7.3.1
???? ?? ?? ?? ???

SublimeText3 ??? ??
??? ??, ???? ?? ????.

???? 13.0.1 ???
??? PHP ?? ?? ??

???? CS6
??? ? ?? ??

SublimeText3 Mac ??
? ??? ?? ?? ?????(SublimeText3)

??? ?? ??? ??? ?? JavaScript? MediareCorder API? ?? PHP ???? ???? ?????. 2. PHP? ???? ?? ??? ???? STTAPI (? : Google ?? Baidu ?? ??)? ???? ???? ?????. 3. PHP? ???? AI ??? (? : OpenAigpt)? ????. 4. ?? ?? PHP? TTSAPI (? : Baidu ?? Google ?? ??)? ???? ??? ?? ??? ?????. 5. PHP? ?? ??? ??? ??? ??? ?? ?? ??? ?????. ?? ????? PHP? ?? ???? ?? ?? ?? ??? ??? ?????.

PHP?? ?? ?? ??? ???? ?? ??? ? ???? ?? ??? ???? ?? ??? ???? ???? ????. 1. ?? ?? ??? ?? ??? URL ? ?? ??? ????. 2. UrlenCode? ???? ?? ??? ???????. 3. ? ???? ????? ?? ?? ??? ? ?? ??? ?????. 4. ???? ???? ?? ? ? ??? ??? ??? ??? ?????. 5. ??? ?? ??? ????? ?? ????? OG ??? ???? ?????. 6. XSS ??? ???? ?? ??? ??? ?????. ? ???? ??? ??? ???? ??? ?? ?? ??? ??? ???? ??? ?? ??? ?????.

AI? ??? ??? ?? ?? ? ?? ???? ????? ?? ??? ??????. 1. Baidu, Tencent API ?? ?? ?? NLP ?????? ?? ??? AI ?? ?? API? ??????. 2. PHP? ? ?? guzzle? ?? API? ???? ?? ??? ??????. 3. ?? ????? ?? ?? ??? ???? ???? ???? ??? ??? ? ????. 4. ?? ?? ? ?? ???? ?? PHP-L ? PHP_CODESNIFFER? ??????. 5. ???? ????? ???? ?? ?? ??? ?????? ??? ??????. AIAPI? ??? ? ???, ?? ??, ?? ? PHP ?? ??? ??? ???. ?? ???? PSR ??? ???, ??? ????? ????, ?? ??? ???, ????? ??? ????, X? ???????.

1. ?? ???? ??? ??? ?????? ?? ?? ??? ??, ??? ?? ???? ??? (? : ?? ???, ? ? ??), ?? ??? ?? ???? ???? ? ?? ?? ??? ??? ?? ??? ????????. 2. ?? ??? ??? ?? ? ??? ???? ?? ?? ?? ???? ?? ? ?? AUDIT ?? ??? ??? ? ????? ????? ??? ???????. 3. ?? ?? ??? ?? ??? ???????. Recaptchav3 ???? ??, ??? ?? ?? ?? ?? ??, IP ? ?? ??? ??? ??? ?? ???? ??? ?? ??? ????? ??? ???? ????? ??? ?????.

PHP? AI ??? ??? ?? ????? ??? API? ?? ?????. ??? ??? ????? ? ??? ???? ?????. API ??? ?? ?? ??? ???? ??? ??? ???? ???? ? ????. 2. ?? ?? ???? guzzle ?? curl? ???? HTTP ??? ???, JSON ??? ??? ? ???, API ? ?? ??, ??? ? ?? ??? ???? ??, ??? ?? ?? ? ? ?? ????, ??? ?? ? ?????? ?????. 3. ???? ???? ?? ???? API ??, ?? ? ??? ?? ??, ??? ?? ??, ?? ?? ? ??? ??? ??? ?????. ?? ??? ??? ??? ? ??? ???? Propt ?? ? ?? ?? ??, ??? ?? ? ?? ????, ?? ?? ?? ???? ? ??? ?? ? ???? ????? ?????.

PHP? ?????? ????? ?? ?? ?? ???? ???? ?? ???? ???? ?? ?? ???? ?????. 2. ?? ??? ???? ???? ?? ??? ?? ? ??? ??? ???? ?? API/Webhook ??? ??? ?? ???? ??? ??? ??? ??? ?????. 3. ?? ????? ?? ??, ??/???? ????, ???? ??, ???? ? ??? ?????? ????? ?? ??? ???? ???? ?? Dingtalk, SMS ?? ??? ???? ??? ?????? ???? ?? ? ??? ??? ????? ?? ??? ???? ???????.

PhpisstillRelevantinmodernenterpriseenvironments.1. Modernphp (7.xand8.x)? ??? ??, ??? ??, jitcompilation ? modernsyntax, mateitsuilableforlarge-scalepplications

??? AI ?? ?? ???? ???? PHPSDK? ??????. 2. PHP? ???? FFMPEG? ???? ???? API ?? ?? (? : WAV)?? ?????. 3. ??? ???? ????? ????? API ???? ??? ??????. 4. NLP ??? ???? JSON ??? ???? ???? ?????. 5. ?? ??? ???? ???? ?? ?? ?? ?? ?? ??? ?????. ?? ????? ?? ?? ? ??? ???? ?? ??? ???, ??? ?? ? ??? ???????.
