PHP 文件系统 is_uploaded_file() 函数



PHP 文件系统is_uploaded_file()函数用于检查文件是否通过HTTP POST上传。因此,它可以很容易地确认正在处理的文件实际上来自用户上传,而不是其他地方。

使用 is_uploaded_file() 函数来:
  • 确保安全性,检查文件是否由有效用户上传。
  • 防止未授权的文件访问或修改。
  • 在保存文件之前检查文件上传。

语法

以下是 PHP 文件系统is_uploaded_file()函数的语法:

bool is_uploaded_file ( string $filename )

参数

以下是is_uploaded_file()函数唯一必需的参数:

序号 参数及描述
1

$filename(必需)

这是文件名。

返回值

如果文件通过 HTTP POST 成功上传,则函数返回 TRUE,否则返回 FALSE。

PHP 版本

is_uploaded_file()函数最初作为核心 PHP 4.0.3 的一部分引入,并与 PHP 5、PHP 7 和 PHP 8 兼容。

示例

假设我们在当前工作目录或文件夹中有一个名为 myfile.txt 的文件。在这个例子中,我们将看到如何使用 PHP 文件系统is_uploaded_file()函数来检查我们的文件是否通过HTTP POST上传。

<?php
    // Mention your file here
    $filename = "myfile.txt";

    if(is_uploaded_file($filename)) {
    
        echo ("The $filename is uploaded using HTTP POST");
    
    } else {
    
        echo ("The $filename is not uploaded using HTTP POST");
    }
?> 

输出

这将产生以下结果:

The myfile.txt is not uploaded using HTTP POST

示例

这是另一个简单的演示,用于查看is_uploaded_file()函数如何工作以检查文件是否已上传。

<?php
    if (isset($_FILES['uploaded_file'])) {
        $file_tmp_name = $_FILES['uploaded_file']['tmp_name'];

        if (is_uploaded_file($file_tmp_name)) {
            echo "The file is uploaded successfully.";
            
            // Move the file to a specific location
            move_uploaded_file($file_tmp_name, "uploads/" . $_FILES['uploaded_file']['name']);
        
        } else {
            echo "The file is not uploaded using HTTP POST.";
        }
    }
?>

输出

以下是以下代码的结果:

The file is uploaded successfully.

示例

在此 PHP 代码中,我们将使用 is_uploaded_file() 函数,如果文件是使用 HTTP POST 上传的,我们将向用户显示文件的内容。

<?php
    //Verify that file is uploaded using HTTP POST
    if (is_uploaded_file($_FILES['uploadfile']['tmp_name'])) {

        echo "File " . $_FILES['uploadfile']['name'] .
        " is uploaded successfully.\n";
                            
    
        // Displaying contents of the file
        echo "Display the contents of the uploaded file:\n";
        readfile($_FILES['uploadfile']['tmp_name']);
    
    } else {
        echo "File " . $_FILES['uploadfile']['name'] .
        " is not uploaded successfully.\n";
    }
?> 

输出

这将生成以下结果:

File myfile.txt is uploaded successfully.
Display the contents of the uploaded file:
Hello, World!
Tutorialspoint
Tutorix

注意

此功能确保恶意用户不会尝试操作脚本上的文件。例如 - /etc/passwd。当使用上传的文件进行的任何操作都可能将其内容暴露给用户甚至同一系统的其他用户时,这种控制尤其重要。

总结

is_uploaded_file()方法是一个内置函数,用于检查给定的文件是否通过 HTTP POST 上传。因此,在is_uploaded_file()函数内部,我们可以将文件名作为参数传递。如果文件成功上传,则返回 True。

php_function_reference.htm
广告