Php 如果未选择任何文件,则返回false,但不工作

Php 如果未选择任何文件,则返回false,但不工作,php,Php,这是我的上传类: class UploadModel { public static function upload() { if(empty($_FILES['image_upload']) || !isset($_FILES['image_upload'])){ // Session::add('feedback_negative', Text::get('FEEDBACK_IMAGE_UPLOAD_ERROR'));

这是我的上传类:

class UploadModel
{

    public static function upload()
    {

        if(empty($_FILES['image_upload']) || !isset($_FILES['image_upload'])){
            // Session::add('feedback_negative', Text::get('FEEDBACK_IMAGE_UPLOAD_ERROR'));
        return false;
        }

    $image = new Image($_FILES['image_upload']);

    if($image){
    $upload = $image->upload(); 

    if($upload){
        //Everything is OK!
        Session::add('feedback_positive', Text::get('FEEDBACK_IMAGE_UPLOAD_SUCCESS'));            
        return true;
    }else{
        //Session::add('feedback_negative', Text::get('FEEDBACK_IMAGE_UPLOAD_ERROR'));
        // For security reasons maybe the above is the way to go? (no super obvious error message)
        Session::add('feedback_negative', $image["error"]);
        return false;
    }
}

}
}
但出于某种原因,第一个if语句不起作用(无论如何我都相信)

我认为下面的if语句将“停止”类的执行,返回false

if(empty($_FILES['image_upload']) || !isset($_FILES['image_upload'])){
    // Session::add('feedback_negative', Text::get('FEEDBACK_IMAGE_UPLOAD_ERROR'));
return false;
}
但它确实发出了声音。我收到以下错误消息

警告:getimagesize():文件名在

警告:getimagesize():文件名在

警告:无法修改标题信息-标题已由发送 (输出开始于

在一个虚拟的ubuntu框中,应用程序继续运行,至少给出了来自
会话::add('feedback_negative',$image[“error”]);
(找不到图像)的错误

但是在我的dev-MAMP服务器(mac操作系统)上,应用程序会在前面的错误消息中停止


同样,我认为这是第一个if语句。

$\u即使未选择任何文件,也始终填充文件

检查大小以查看是否确实存在文件:

if ($_FILES['image_upload']['size'] > 0) {
您还可以检查文件名:

if (is_uploaded_file($_FILES['image_upload']['tmp_name'])) {

如果你做一个
var\u转储($\u文件);
你会更好地理解你收到的数据。

坦克!我照你说的做了,看了一下_文件的数组结构。我和操作员一起去了。啊,是的,你正在检查文件是否没有上传。那很好,尽管
==0
可能更明智(绝对不能小于0)