PHP程式語言中的常見的$_FILES系統函式用法有:
$_FILES[myFile][name] 顯示客戶端檔案的原名稱。
$_FILES[myFile][type] 檔案的 MIME 類型,例如image/gif。
$_FILES[myFile][size] 已上傳檔案的大小,單位為位元組。
$_FILES[myFile][tmp_name] 儲存的臨時檔案名稱,一般是系統默認。
$_FILES[myFile][error] 該檔案上傳的代碼,PHP4.2版本後增加的
基本介紹
- 中文名:$_FILES系統函式
- 作用:存儲各種與上傳檔案有關的信息
- 提供:與上傳嘗試結果有關的重要信息
- 指定:從客戶端上傳的檔案的mime類型
常見函式,變數用法,
常見函式
$_FILES['myFile']['name'] 顯示客戶端檔案的原名稱。
$_FILES['myFile']['type'] 檔案的 MIME 類型,例如"image/gif"。
$_FILES['myFile']['size'] 已上傳檔案的大小,單位為位元組。
$_FILES['myFile']['tmp_name'] 儲存的臨時檔案名稱,一般是系統默認。
$_FILES['myFile']['error'] 該檔案上傳相關的錯誤代碼。以下為不同代碼代表的意思:
0; 檔案上傳成功。
1; 超過了檔案大小php.ini中即系統設定的大小。
2; 超過了檔案大小MAX_FILE_SIZE 選項指定的值。
3; 檔案只有部分被上傳。
4; 沒有檔案被上傳。
5; 上傳檔案大小為0。
實例
<html>
<body>
<form action="upload_file.php" method="post"enctype="multipart/form-data">
<label for="file">filename:</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="submit" />
</form>
</body>
</html>
php處堡放雄理代碼
<?php
if ($_FILES["file"]["error"] > 0) {
echo "Error: " . $_FILES["file"]["error"] . "<br />"; //由表單file input的到$_FILES的值
}else {
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Stored in: " . $_FILES["file"]["tmp_name"];
}
?>
變數用法
$_FILES超級全局變數很特殊,他是預定義超級全局數組中唯一的二維數組。其作用是存儲各種與上傳檔案有關的信息,這些信息對於通過PHP腳本上傳到伺服器的檔案至關重要。此函式中總共有5項:
1.$_FILES["userfile"]["error"]
$_FILES["userfile"]["error"]數組值提供了與上傳嘗試結果有關的重要信息。總共有5個不同備殼灑櫻的返回值,其中一個表示成功的結果,另外4個表示在嘗試中出現的特殊錯誤。每個返回值的名字和將在後面介紹。
2.$_FILES["userfile"]["name"]
$_FILES["userfile"]["name"]變數指定客戶端機器上聲明的檔案最初的名字,包括擴展名。因此,如果瀏覽器一個名為vacation.jpg的文跨檔戰件,並通過表單上傳,則此變數的值將是vacation.jpg。
3.$_FILES["userfile"]["size"]
$_FILES["userfile"]["size"]變數指定從客戶端上傳的檔案的大小,以位元組為單位。因此,在vacation.jpg檔案的例子中,雅市兆此函式可能賦值為5253,大約為5kb.
4. $_FILES["userfile"]["tmp_name"]
$_FILES["userfile"]["tmp_name"]變數指定上傳到伺服器後為檔案賦予的臨時名。這是存儲在臨時目錄(由PHP指令upload_tmp_dir指定)中時多臭放凳所指定循紋的檔案名稱。
5. $_FILES["userfile"]["type"]
$_FILES["userfile"]["type"]變數指定從客戶端上傳的檔案淚重虹的mime類型。因此,在vacation.jpg檔案的例子中,此變數會賦值為image/jpeg。如果上傳的是PDF,則賦值為application/pdf。因為這個變數有時會得到意外的結果,所以應當在腳本中顯示地進行驗證。
$_FILES['myFile']['error'] 和該檔案上傳相關的錯誤代碼。['error'] 是在 PHP 4.2.0 版本中增加的。下面是它的說明:(它們在PHP3.0以後成了常量)
UPLOAD_ERR_OK
值:0; 沒有錯誤發生,檔案上傳成功。
UPLOAD_ERR_INI_SIZE
值:1; 上傳的檔案超過了 php.ini 中 upload_max_filesize 選項限制的值。
UPLOAD_ERR_FORM_SIZE
值:2; 上傳檔案的大小超過了 HTML 表單中 MAX_FILE_SIZE 選項指定的值。
UPLOAD_ERR_PARTIAL
值:3; 檔案只有部分被上傳。
UPLOAD_ERR_NO_FILE
值:4; 沒有檔案被上傳。
值:5; 上傳檔案大小為0.
好了下面我們來看個完整的實例
實例
簡單檔案上傳
<html>
<body>
<form action="upload_file.php" method="post"
enctype="multipart/form-data">
<label for="file">filename:</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="submit" />
</form>
</body>
</html>
php代碼
<?php
if ((($_files["file"]["type"] == "image/gif")
|| ($_files["file"]["type"] == "image/jpeg")
|| ($_files["file"]["type"] == "image/pjpeg"))
&& ($_files["file"]["size"] < 20000))
{
if ($_files["file"]["error"] > 0)
{
echo "error: " . $_files["file"]["error"] . "<br />";
}
else
{
echo "upload: " . $_files["file"]["name"] . "<br />";
echo "type: " . $_files["file"]["type"] . "<br />";
echo "size: " . ($_files["file"]["size"] / 1024) . " kb<br />";
echo "stored in: " . $_files["file"]["tmp_name"];
}
}
else
{
echo "invalid file";
}
?>
對於 IE,識別 jpg 檔案的類型必須是 pjpeg,對於 FireFox,必須是 jpeg