程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php9個超全局變量的用法詳解(三)

php9個超全局變量的用法詳解(三)

編輯:關於PHP編程

今天要繼續php9個超全局變量的系列,今天說一說$_FILE的用法.

首先呢,類似與$_POST等, $_FILES適用於上傳文件類的input標簽,$_FIFLES類似於一個二維數組,可以得到並保存客戶端上傳的文件的各種信息,具體如下:

$_FILES['myFile']['name'] 客戶端文件的原名稱。
$_FILES['myFile']['type'] 文件的 MIME 類型,需要浏覽器提供該信息的支持,例如"image/gif"。
$_FILES['myFile']['size'] 已上傳文件的大小,單位為字節。
$_FILES['myFile']['tmp_name'] 文件被上傳後在服務端儲存的臨時文件名,一般是系統默認。可以在php.ini的upload_tmp_dir 指定,但 用 putenv() 函數設置是不起作用的。
$_FILES['myFile']['error'] 和該文件上傳相關的錯誤代碼。['error'] 是在 PHP 4.2.0 版本中增加的。下面是它的說明:(它們在PHP3.0以後成了常量)

所以,通過上面的這寫變量便可以用於後台處理用戶上傳的文件了,例如只能上傳圖片類的,則可以通過$_FILES['myFile']['type']來限制,限制大小則可以通過$_FILES['myFile']['size'] 來指定,接下來,我以w3school上的例子來解釋$_FILES的具體用法。

該demo主要實現的功能是上傳圖片類的文件並保存在服務器端的相關目錄下。

html代碼如下:








代碼很簡單,只是定義了一個上傳控件,注意這個name對應的值‘file’是$_FILES獲得前台文件的依據,若後台獲得文件類型寫成$_FILES['myFile']['type'],說明前台的name對應的值一定要為'myFile',不然會報Invalid file的錯誤。最後看一下後台的代碼:

 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "
"; } else { echo "Upload: " . $_FILES["file"]["name"] . "
"; echo "Type: " . $_FILES["file"]["type"] . "
"; echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB
"; echo "Temp file: " . $_FILES["file"]["tmp_name"] . "
"; if (file_exists("upload/" . $_FILES["file"]["name"])) { echo $_FILES["file"]["name"] . " already exists. "; } else { move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]); echo "Stored in: " . "upload/" . $_FILES["file"]["name"]; } } } else { echo "Invalid file"; } ?>


裡面主要用到了explode(),end(),和in_array()三個主要函數,其用法我都做了注釋解釋,都很好理解,你看,用php實現上傳一個文件是多麼的簡單,需要注意的一點是:文件被上傳結束後,默認地被存儲在了臨時目錄中,這個目錄可以通過$_FILES['myFile']['tmp_name'] 來訪問,這時您必須將它從臨時目錄中刪除或移動到其它地方,如果沒有,則會被刪除。也就是不管是否上傳成功,腳本執行完後臨時目錄裡的文件肯定會被刪除。所以本例當中用move_uploaded_files()函數將它復制到其它位置,此時,才算完成了上傳文件過程。

最後,如果需要的話還是可以下載一下源碼的,雖然很簡單。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved