【问题标题】:How to check if image was submitted with other form data如何检查图像是否与其他表单数据一起提交
【发布时间】:2012-02-03 22:45:20
【问题描述】:

我有一个用户注册表单,上传带有其他表单元素的图片是可选的。因此,有时用户可能不会将图像与其他数据一起上传。

现在的问题是即使用户没有上传图片,下面的代码总是回显文件已上传

能否请您告诉我如何检查图像是否由用户提交,如果未上传,则使其回显/显示“未上传”?

在此先感谢 :)

在我的控制器文件中

extract($_POST); // <<This is to retrieve all form data at once

if(isset($_FILES['userfile'])){
    echo"file uploaded";
} else{
    echo "Not Uploaded";
}

这是在我的视图文件中

<input type="file" class="" name="userfile" size="20" />

【问题讨论】:

    标签: php codeigniter codeigniter-2


    【解决方案1】:

    每个 PHP 文档:

    如果您的表单中没有选择上传文件,PHP 将返回 $_FILES['userfile']['size'] 为 0,并且 $_FILES['userfile']['tmp_name'] 为无。

    来源:http://www.php.net/manual/en/features.file-upload.post-method.php

    因此您的条件可以更改为:

    if(isset($_FILES['userfile']) && $_FILES['userfile']['size'] > 0){
         echo"file uploaded";
    } else echo "Not Uploaded" ;
    

    【讨论】:

      【解决方案2】:

      您可以将这两种检查结合起来:

       if (count($_POST) and !empty($_FILES['userfile'])) {
      
             // uploaded
      
       }
       else {
      
             // either is missing
      
       }
      

      请注意,您应该使用extract($_POST);。您无法控制从外部覆盖哪些局部变量。 (如果没有别的调查EXTR_PREFIX。)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-08
        • 1970-01-01
        • 1970-01-01
        • 2014-09-13
        • 2015-12-11
        相关资源
        最近更新 更多