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