2016-06-19 90 views
0

所以我有一些形式,接受图像。但是,我一定没有明白什么。 基本上,当图像被选中时,我希望它被检查并在以后上传。如果没有图像被选中,我不关心,因为它不是必需的。PHP发送没有图像的形式

但是,如果没有图像被选择上传,图像仍然被检查等,并且回声从未发生。到底是怎么回事?

 if(isset($_FILES["fileToUpload"])) 
     { 
      $target_file = $_FILES["fileToUpload"]; 
      include ('../config/imageCheck.php'); 
     } 
     else 
     { 
      echo "no image"; 
     } 

P.S.如果我的问题不是最好的,我一直在不停地为这个大学项目做最后5天的工作。 :)

+0

添加一个简单的'如果($ _ FILES [ 'fileToUpload'] [ '名称'] == “”){回声 '没有图像'}'或'如果(空($ _FILES ['fileToUpload'] ['name'])){}'无论哪个都适合你。 – Matt

回答

0

您应该使用is_uploaded_file()函数来检查文件是否已上载或没有,所以你的代码应该是这样的:

if(is_uploaded_file($_FILES['fileToUpload']['tmp_name'])){ 
    // A file has been uploaded 
    $target_file = $_FILES["fileToUpload"]; 
    include ('../config/imageCheck.php'); 
}else{ 
    // User hasn't uploaded any file 
    echo "no image"; 
} 

或更好的结合使用file_exists()功能与is_uploaded_file(),像这样的:

if(is_uploaded_file($_FILES['fileToUpload']['tmp_name']) && file_exists($_FILES['fileToUpload']['tmp_name'])){ 
    // A file has been uploaded 
}else{ 
    // User hasn't uploaded any file 
} 

下面是引用:

0

我不知道在这段代码的另一边发生了什么,但如果你有一个带有图像上传元素的表单,那么如果没有选择图像,它可能会返回“false”。在这种情况下,您的“isset”函数将收到“false”或“0”响应,isset将为true,因为“false”或“0”也是一个值。

也许你应该修改代码以:

if($_FILES["fileToUpload"]) 
0

根据文档("Error Messages Explained"$_FILES["fileToUpload"]['error']将有值4,如果没有文件被上传。

if($_FILES['picture']['error'] != 4) { 
    echo "Do stuff..."; 
} else { 
    echo "No image"; 
}