首页  >  文章  >  后端开发  >  如何可靠地确定 PHP 中的文件是否已上传?

如何可靠地确定 PHP 中的文件是否已上传?

DDD
DDD原创
2024-11-01 06:19:31823浏览

How to Reliably Determine if a File Was Uploaded in PHP?

在 PHP 中评估用户文件上传

验证用户输入时,确保文件上传的完整性至关重要。但是,某些表单可能允许可选上传。在这种情况下,跳过对尚未提交文件的用户的验证至关重要。

确定文件上传存在

要检查文件是否已上传,请使用 $_FILES ['myfile']['size']

使用 is_uploaded_file()

<code class="php">if(!file_exists($_FILES['myfile']['tmp_name']) || !is_uploaded_file($_FILES['myfile']['tmp_name'])) {
    echo 'No upload';
}</code>

正如官方文档所解释的,这个函数:

  • 确保文件是通过 HTTP POST 方法上传的。
  • 防止恶意尝试访问意外文件。

示例实现

考虑 FileUpload 类中的示例:

<code class="php">public function fileUploaded()
{
    if(empty($_FILES)) {
        return false;       
    } 
    $this->file = $_FILES[$this->formField];
    if(!file_exists($this->file['tmp_name']) || !is_uploaded_file($this->file['tmp_name'])){
        $this->errors['FileNotExists'] = true;
        return false;
    }   
    return true;
}</code>

此方法首先检查 $_FILES 数组是否为空。如果没有,它会检索上传的文件并使用 file_exists() 验证其存在。最后,is_uploaded_file() 确认文件是否确实上传。

以上是如何可靠地确定 PHP 中的文件是否已上传?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn