(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)
is_uploaded_file — 判斷文件是否是通過(guò) HTTP POST 上傳的
$filename
): bool
如果 filename
所給出的文件是通過(guò)
HTTP POST 上傳的則返回 true
。這可以用來(lái)確保惡意的用戶(hù)無(wú)法欺騙腳本去訪(fǎng)問(wèn)本不能訪(fǎng)問(wèn)的文件,例如
/etc/passwd。
這種檢查顯得格外重要,如果上傳的文件有可能會(huì )造成對用戶(hù)或本系統的其他用戶(hù)顯示其內容的話(huà)。
為了能使 is_uploaded_file() 函數正常工作,必段指定類(lèi)似于 $_FILES['userfile']['tmp_name'] 的變量,而在從客戶(hù)端上傳的文件名 $_FILES['userfile']['name'] 不能正常運作。
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'] . "'.";
}
?>