php中實現圖片檔案上傳程式碼

來源:互聯網
上載者:User

我們先來看一下項目結構圖與資料庫結構圖吧

項目結構:

運行效果;

  up.html 簡單的上傳表單檔案

 代碼如下 複製代碼

<form action="up.php" enctype="multipart/form-data" method="post"
     name="uploadfile">上傳檔案:<input type="file" name="upfile" /><br>
 <input type="submit" value="上傳" /></form>

up.php 用來處理圖片檔案上傳的程式

 代碼如下 複製代碼

 <?php
 //print_r($_FILES["upfile"]);
 if(is_uploaded_file($_FILES['upfile']['tmp_name'])){
     $upfile=$_FILES["upfile"];
     //擷取數組裡面的值
     $name=$upfile["name"];//上傳檔案的檔案名稱
     $type=$upfile["type"];//上傳檔案的類型
     $size=$upfile["size"];//上傳檔案的大小
     $tmp_name=$upfile["tmp_name"];//上傳檔案的臨時存放路徑
/*
這是一種非常簡單檔案上傳方式。基於安全方面的考慮,您應當增加有關什麼使用者有權上傳檔案的限制。
上傳限制
在這個指令碼中,我們增加了對檔案上傳的限制。使用者只能上傳 .gif 或 .jpeg 檔案
*/
     switch ($type){
         case 'image/pjpeg':$okType=true;
         break;
         case 'image/jpeg':$okType=true;
         break;
         case 'image/gif':$okType=true;
         break;
         case 'image/png':$okType=true;
         break;
     }

 
     if($okType){
         /**
          * 0:檔案上傳成功<br/>
          * 1:超過了檔案大小,在php.ini檔案中設定<br/>
          * 2:超過了檔案的大小MAX_FILE_SIZE選項指定的值<br/>
          * 3:檔案只有部分被上傳<br/>
          * 4:沒有檔案被上傳<br/>
          * 5:上傳檔案大小為0
          */
         $error=$upfile["error"];//上傳後系統返回的值
         echo "================<br/>";
         echo "上傳檔案名稱是:".$name."<br/>";
         echo "上傳檔案類型是:".$type."<br/>";
         echo "上傳檔案大小是:".$size."<br/>";
         echo "上傳後系統返回的值是:".$error."<br/>";
         echo "上傳檔案的臨時存放路徑是:".$tmp_name."<br/>";
 
         echo "開始移動上傳檔案<br/>";
         //把上傳的臨時檔案移動到up目錄下面
         move_uploaded_file($tmp_name,'up/'.$name);
         $destination="up/".$name;
         echo "================<br/>";
         echo "上傳資訊:<br/>";
         if($error==0){
             echo "檔案上傳成功啦!";
             echo "<br>圖片預覽:<br>";
             echo "<img src=".$destination.">";
             //echo " alt="圖片預覽:r檔案名稱:".$destination."r上傳時間:">";
         }elseif ($error==1){
             echo "超過了檔案大小,在php.ini檔案中設定";
         }elseif ($error==2){
             echo "超過了檔案的大小MAX_FILE_SIZE選項指定的值";
         }elseif ($error==3){
             echo "檔案只有部分被上傳";
         }elseif ($error==4){
             echo "沒有檔案被上傳";
         }else{
             echo "上傳檔案大小為0";
         }
     }else{
         echo "請上傳jpg,gif,png等格式的圖片!";
     }
 }
 ?>

總結分析

在php圖片上傳中我們主要是通過使用 PHP 的全域數組 $_FILES,你可以從客戶電腦向遠程伺服器上傳檔案。
第一個參數是表單的 input name,第二個下標可以是 "name", "type", "size", "tmp_name" 或 "error"。就像這樣:
$_FILES["file"]["name"] - 被上傳檔案的名稱
$_FILES["file"]["type"] - 被上傳檔案的類型
$_FILES["file"]["size"] - 被上傳檔案的大小,以位元組計
$_FILES["file"]["tmp_name"] - 儲存在伺服器的檔案的臨時副本的名稱
$_FILES["file"]["error"] - 由檔案上傳導致的錯誤碼

只要你瞭解了上面這些參數就可以完全的在php中實現檔案上傳了哦,因為上面我限制了

 代碼如下 複製代碼
 switch ($type){
         case 'image/pjpeg':$okType=true;
         break;
         case 'image/jpeg':$okType=true;
         break;
         case 'image/gif':$okType=true;
         break;
         case 'image/png':$okType=true;
         break;
     }


只能上傳jpg,gif,png,jpeg四種格式的圖片檔案了,所以說這裡是圖片上傳實現了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.