PHP | is_uploaded_file 函數

怎樣判斷文件是否上傳的文件

最近更新時間 2021-01-18 21:34:06

is_uploaded_file 函數判斷文件是否是通過 HTTP POST 上傳的。

如果 filename 所給出的文件是通過 HTTP POST 上傳的則返回 true。這可以用來確保惡意的用戶無法欺騙腳本去訪問本不能訪問的文件,例如 /etc/passwd。這種檢查顯得格外重要,如果上傳的文件有可能會造成對用戶或本系統的其他用戶顯示其內容的話。

函數定義

is_uploaded_file ( string $filename ) : bool
// 源文件位於:ext/standard/basic_functions.c
# 函數定義

PHP_FUNCTION(is_uploaded_file)
{
  ...
  if (!SG(rfc1867_uploaded_files)) {
    RETURN_FALSE;
  }

  if (zend_hash_str_exists(SG(rfc1867_uploaded_files), path, path_len)) {
    RETURN_TRUE;
  } else {
    RETURN_FALSE;
  }
}

參數

  • checkfilename - 文件名。

返回值

  • checkbool - 檢測成功返回 true,否則返回 false。

示例1: - 使用 is_uploaded_file() 判斷是否上傳的文件。

<?php
/**
 * PHP is_uploaded_file() 判斷是否上傳的文件。
 *
 * @since Version 1.0.0
 * @filesource
 */

// 判斷是否上傳的文件
if(is_uploaded_file($_FILES['file']['tmp_name'])){
  echo 'Uploaded';
}
Uploaded
rss_feed