在编码器中检查是否选择了文件上传


checking if the file upload is chosen or not in codeigniter

我有一个输入类型文件的表单,它不是强制上传的。但是在提交操作发生之后,我想在控制器部分检查文件输入是否为空。我有以下视图页面和控制器,但该方法不适合我。

这是表单填写页面

<form enctype="multipart/form-data" method="post" 
  action="<?php echo site_url('welcome/do_upload');?>">
    username:<input type="text" name="username">
    <p>upload file</p>
    <input type="file" name="image">
    <input type="submit" name="submit" value="submit">
</form>

,这是我试图检查文件是否被选择上传的控制器。

if(isset($_FILES['image'])){
    echo( "image selected");
} else {
    echo("image not selected");
}

输出的结果总是"选定的图像",虽然我没有选择任何图像

当您提交表单

$_FILES['image']无论如何都会被创建,从而使您的条件为真。

你在这里检查错误的条件,你想做的是当用户上传文件时。您可能想要做的是检查$_FILES['image']['name']的长度是否为> 0$_FILES['image']['size']的长度是否为> 0

示例,代码不用于生产,仅用于测试。

if ( strlen($_FILES['image']['name']) > 0){
     //yeahhhh!
}