is_uploaded_file

(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)

is_uploaded_file判斷文件是否是通過(guò) HTTP POST 上傳的

說(shuō)明

is_uploaded_file(string $filename): bool

如果 filename 所給出的文件是通過(guò) HTTP POST 上傳的則返回 true。這可以用來(lái)確保惡意的用戶無(wú)法欺騙腳本去訪問(wèn)本不能訪問(wèn)的文件,例如 /etc/passwd。

這種檢查顯得格外重要,如果上傳的文件有可能會(huì)造成對(duì)用戶或本系統(tǒng)的其他用戶顯示其內(nèi)容的話。

為了能使 is_uploaded_file() 函數(shù)正常工作,必段指定類似于 $_FILES['userfile']['tmp_name'] 的變量,而在從客戶端上傳的文件名 $_FILES['userfile']['name'] 不能正常運(yùn)作。

參數(shù)

filename

要檢查的文件名。

返回值

成功時(shí)返回 true, 或者在失敗時(shí)返回 false。

范例

示例 #1 is_uploaded_file() 例子

<?php

if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
   echo 
"File "$_FILES['userfile']['name'] ." uploaded successfully.\n";
   echo 
"Displaying contents\n";
   
readfile($_FILES['userfile']['tmp_name']);
} else {
   echo 
"Possible file upload attack: ";
   echo 
"filename '"$_FILES['userfile']['tmp_name'] . "'.";
}

?>

參見(jiàn)