为什么在这个例子中使用 tmp_name

why tmp_name is used in this example

我对 php.I 很陌生,当时我在 getimagesize() 函数 $_FILES['file']['temp_name'] 中查看文件 uploading.Here 上的示例 used.and 当我回应 $_FILES 时['file']['temp_name'] 它显示以下输出:

C:\xampp\tmp\phpDE4B.tmp

我的问题是:

1.why 在 getimagesize() 函数中使用 tmp_name 而不是原来的名称。

2.For 创建此 tmp_name 的原因是什么?

3.How是生成的吗?

$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
    $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
    if($check !== false) {
        echo "File is an image - " . $check["mime"] . ".";
        $uploadOk = 1;
    } else {
        echo "File is not an image.";
        $uploadOk = 0;
    }
}

临时文件是作为文件上传过程的一部分生成的,直接在 PHP 和网络服务器之间处理。

使用临时文件以便用户空间代码可以将文件移动到服务器上的最终目标文件夹 - 最终目标文件夹不是可以在 http 请求中传递或由网络服务器处理的信息,因为它完全取决于您的应用程序。如果文件未移动到其最终目标文件夹,则临时文件将在请求结束时自动删除

在这种情况下,代码是验证过程的一部分,以确保文件在 移动之前与其声称的一样它到最终目标文件夹(假设它是一个有效文件)。

当一些文件上传到服务器时,它被放置在临时目录中以供使用。为了避免名称冲突,分配了临时名称。

1) 您需要将文件路径传递给 getimagesize(),因为您可能不仅希望处理已保存的文件。

2) Tmp_name是为了避免冲突而创建的,但如果需要,您可以使用原始名称。

3) 只是在临时目录中随机生成的一些名称。