


PHP simple upload class sharing, PHP upload sharing_PHP tutorial
Jul 12, 2016 am 08:52 AMPHP simple upload class sharing, php upload sharing
The example in this article shares the php upload class for your reference, the specific content is as follows
<?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設定的最大值'; 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);//設定保存完整的 alpha 通道信息 $background_color = imagecolorallocate($thumbImg, 0,255,0); // 指派一個綠色 imagecolortransparent($thumbImg,$background_color); // 設置為透明色,若注釋掉該行則輸出綠色的圖 } // 對jpeg圖形設置隔行掃描 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; } }
The above is the entire content of this article. I hope it will be helpful to everyone in learning PHP programming.

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

TostaycurrentwithPHPdevelopmentsandbestpractices,followkeynewssourceslikePHP.netandPHPWeekly,engagewithcommunitiesonforumsandconferences,keeptoolingupdatedandgraduallyadoptnewfeatures,andreadorcontributetoopensourceprojects.First,followreliablesource

PHPbecamepopularforwebdevelopmentduetoitseaseoflearning,seamlessintegrationwithHTML,widespreadhostingsupport,andalargeecosystemincludingframeworkslikeLaravelandCMSplatformslikeWordPress.Itexcelsinhandlingformsubmissions,managingusersessions,interacti

TosettherighttimezoneinPHP,usedate_default_timezone_set()functionatthestartofyourscriptwithavalididentifiersuchas'America/New_York'.1.Usedate_default_timezone_set()beforeanydate/timefunctions.2.Alternatively,configurethephp.inifilebysettingdate.timez

TovalidateuserinputinPHP,usebuilt-invalidationfunctionslikefilter_var()andfilter_input(),applyregularexpressionsforcustomformatssuchasusernamesorphonenumbers,checkdatatypesfornumericvalueslikeageorprice,setlengthlimitsandtrimwhitespacetopreventlayout

ThePhpfunctionSerialize () andunserialize () AreusedtoconvertcomplexdaTastructdestoresintostoraSandaBackagain.1.Serialize () c OnvertsdatalikecarraysorobjectsraystringcontainingTypeandstructureinformation.2.unserialize () Reconstruct theoriginalatataprom

You can embed PHP code into HTML files, but make sure that the file has an extension of .php so that the server can parse it correctly. Use standard tags to wrap PHP code, insert dynamic content anywhere in HTML. In addition, you can switch PHP and HTML multiple times in the same file to realize dynamic functions such as conditional rendering. Be sure to pay attention to the server configuration and syntax correctness to avoid problems caused by short labels, quotation mark errors or omitted end labels.

The key to writing clean and easy-to-maintain PHP code lies in clear naming, following standards, reasonable structure, making good use of comments and testability. 1. Use clear variables, functions and class names, such as $userData and calculateTotalPrice(); 2. Follow the PSR-12 standard unified code style; 3. Split the code structure according to responsibilities, and organize it using MVC or Laravel-style catalogs; 4. Avoid noodles-style code and split the logic into small functions with a single responsibility; 5. Add comments at key points and write interface documents to clarify parameters, return values ??and exceptions; 6. Improve testability, adopt dependency injection, reduce global state and static methods. These practices improve code quality, collaboration efficiency and post-maintenance ease.

Yes,youcanrunSQLqueriesusingPHP,andtheprocessinvolveschoosingadatabaseextension,connectingtothedatabase,executingqueriessafely,andclosingconnectionswhendone.Todothis,firstchoosebetweenMySQLiorPDO,withPDObeingmoreflexibleduetosupportingmultipledatabas
