PHP環(huán)境搭建的詳細(xì)步驟
來源:易賢網(wǎng) 閱讀:733 次 日期:2016-08-16 14:55:37
溫馨提示:易賢網(wǎng)小編為您整理了“PHP環(huán)境搭建的詳細(xì)步驟”,方便廣大網(wǎng)友查閱!

有縮略圖功能 但是 感覺不全面,而且有點問題,繼續(xù)學(xué)習(xí),將來以后修改下

<form action="<?php $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data" method="post" ><input type="text" name="name" /><input type="file" name="file" /><input type="submit" name='submit' value="提交" ></form> 

<?php 

/** 

 * Created by PhpStorm. 

 * User: Administrator 

 * Date: 2016/6/28 

 * Time: 21:04 

 */

class upload{ 

   protected $fileMine;//文件上傳類型 

   protected $filepath;//文件上傳路徑 

   protected $filemax;//文件上傳大小 

   protected $fileExt;//文件上傳格式 

   protected $filename;//文件名 

   protected $fileerror;//文件出錯設(shè)置 

   protected $fileflag;//文件檢測 

   protected $fileinfo; //FILES 

   protected $ext; //文件擴(kuò)展 

   protected $path; 

  //文件上傳 

  public function __construct($filename="file",$filemax=20000000,$filepath="./Uploads",$fileflag=true,$fileExt=array('jpg','exe'),$fileMine=array('image/jpeg')) 

  { 

    $this->filename=$filename; 

    $this->fileinfo=$_FILES[$this->filename]; 

    $this->filemax=$filemax; 

    $this->filepath=$filepath; 

    $this->fileflag=$fileflag; 

    $this->fileExt=$fileExt; 

    $this->fileMine=$fileMine; 

    //var_dump($this->filename); 

  } 

  //錯誤判斷 

  public function UpError(){ 

      if($this->fileinfo['error']>0){ 

        switch($this->fileinfo['error']) 

        { 

          case 1: 

          $this->fileerror="上傳文件大小超過服務(wù)器允許上傳的最大值,php.ini中設(shè)置upload_max_filesize選項限制的值 "; 

            break; 

          case 2: 

            $this->fileerror="上傳文件大小超過HTML表單中隱藏域MAX_FILE_SIZE選項指定的值"; 

            break; 

          case 3: 

            $this->fileerror="文件部分被上傳"; 

            break; 

          case 4: 

            $this->fileerror="沒有選擇上傳文件"; 

            break; 

          case 5: 

            $this->fileerror="未找到臨時目錄"; 

            break; 

          case 6: 

            $this->fileerror="文件寫入失敗"; 

            break; 

          case 7: 

            $this->fileerror="php文件上傳擴(kuò)展沒有打開 "; 

            break; 

          case 8: 

            $this->fileerror=""; 

            break; 

        } 

        return false; 

      } 

      return true; 

  } 

  //檢測文件類型 

  public function UpMine(){ 

    if(!in_array($this->fileinfo['type'],$this->fileMine)) { 

      $this->error="文件上傳類型不對"; 

      return false; 

    } 

    return true; 

  } 

  //檢測文件格式 

  public function UpExt(){ 

    $this->ext=pathinfo($this->fileinfo['name'],PATHINFO_EXTENSION); 

    //var_dump($ext); 

    if(!in_array($this->ext,$this->fileExt)){ 

      $this->fileerror="文件格式不對"; 

      return false; 

    } 

    return true; 

  } 

  //檢測文件路徑 

  public function UpPath(){ 

    if(!file_exists($this->filepath)){ 

      mkdir($this->filepath,0777,true); 

    } 

  } 

  //檢測文件大小 

  public function UpSize(){ 

    $max=$this->fileinfo['size']; 

    if($max>$this->filemax){ 

      $this->fileerror="文件過大"; 

      return false; 

    } 

    return true; 

  } 

  //檢測文件是否HTTP 

  public function UpPost(){ 

    if(!is_uploaded_file($this->fileinfo['tmp_name'])){ 

      $this->fileerror="惡意上償還"; 

      return false; 

    } 

    return true; 

  } 

  //文件名防止重復(fù) 

  public function Upname(){ 

    return md5(uniqid(microtime(true),true)); 

  } 

  //圖片縮略圖 

  public function Smallimg($x=100,$y=100){ 

    $imgAtt=getimagesize($this->path); 

    //圖像寬,高,類型 

    $imgWidth=$imgAtt[0]; 

    $imgHeight=$imgAtt[1]; 

    $imgext=$imgAtt[2]; 

    //等比列縮放 

    if(($x/$imgWidth)>($y/$imgHeight)){ 

      $bl=$y/$imgHeight; 

    }else{ 

      $bl=$x/$imgWidth; 

    } 

    $x=floor($imgWidth*$bl); //縮放后 

    $y=floor($imgHeight*$bl); 

    $images=imagecreatetruecolor($x,$y); 

    $big=imagecreatefromjpeg($this->path); 

    imagecopyresized($images,$big,0,0,0,0,$x,$y,$imgWidth,$imgWidth); 

    switch($imgext){ 

      case 1: 

        $imageout=imagecreatefromgif($this->path); 

        break; 

      case 2: 

        $imageout=imagecreatefromjpeg($this->path); 

        break; 

      case 3: 

        $imageout=imagecreatefromgif($this->path); 

        break; 

    } 

    $im=imagejpeg($images,$this->path); 

  } 

  //文件雙傳 

  public function uploads() 

  { 

    if($this->UpError()&&$this->UpMine()&&$this->UpExt()&&$this->UpSize()&&$this->UpPost()){ 

      $this->UpPath(); 

      $names=$this->Upname(); 

      $this->path=$this->filepath.'/'. $names.'.'.$this->ext; 

      if(move_uploaded_file($this->fileinfo['tmp_name'], $this->path)){ 

        return $this->path; 

      }else{ 

        $this->fileerror="上傳失敗"; 

      } 

    }else{ 

      exit("<b>".$this->fileerror."</b>"); 

    } 

  } 

?>

-------------------------------------------------------------------------------------------------------

<?php 

  header("content-type:imagejpeg"); 

header("Content-type:text/html;charset=utf-8"); 

 require 'list.php'; 

 $u=new upload(); 

 $a=$u->uploads(); 

 $c=$u->Smallimg(); 

echo "<img src={$a} />"; 

echo "<img src={$c} />"; 

?> 

----------------------------------------------------------------------------------------------------------

<!DOCTYPE html> 

<html> 

<head> 

<meta charset="utf-8"> 

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 

<title>Examples</title> 

<meta name="description" content=""> 

<meta name="keywords" content=""> 

<link href="" rel="stylesheet"> 

</head> 

<body> 

  <form action="ce.php" enctype="multipart/form-data" method="post" > 

  <input type="text" name="name" /><input type="file" name="file" /> 

  <input type="submit" name='submit' value="提交" > 

  </form> 

</body> 

</html>

以上這篇PHP之圖片上傳類實例代碼(加了縮略圖)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考

更多信息請查看網(wǎng)絡(luò)編程
易賢網(wǎng)手機(jī)網(wǎng)站地址:PHP環(huán)境搭建的詳細(xì)步驟
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 加入群交流 | 手機(jī)站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65317125(9:00—18:00) 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
咨詢QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報警專用圖標(biāo)