检查是否在codeigniter中选择了文件上传

I have a form with input type file and its not compulsory to upload . But after the submit action occurs I want to check in the controller section if the file input is empty or not. I have a following view page and controller but the method is not working for me .

This is the form fillup page

<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>

and this is the controller where am trying to check if the file is selected to upload or not .

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

the output of the result is always the "image selected" though I don't select any image

The error is when you submit the FORM

$_FILES['image'] will always be created no matter what thus making your conditions true.

You are checking for the wrong conditions here, what you want to do is when a user uploads a file. You might want to do is to check if the $_FILES['image']['name'] length is > 0 or the $_FILES['image']['size'] is > 0.

example, code not for production, just for testing.

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