所以我有一些形式,接受图像。但是,我一定不明白。 基本上,当选择图像时,我希望它被检查,然后上传。如果没有选择图像,我不在乎,因为它不是必需的。
但是,如果没有选择上传图像,则仍会检查图像等,并且不会发生回声。发生了什么事?
if(isset($_FILES["fileToUpload"]))
{
$target_file = $_FILES["fileToUpload"];
include ('../config/imageCheck.php');
}
else
{
echo "no image";
}
P.S。过去5天我一直在研究这个大学项目,对不起,如果我的问题不是最好的! :)
答案 0 :(得分:0)
我不知道这个代码的另一面发生了什么,但是如果你有一个带有图片上传元素的表单,那么它可能会返回" false"如果未选择图像。在这种情况下,你的" isset"功能会收到回复" false"或" 0"并且isset将是真实的,因为" false"或" 0"也是一个价值。
也许您应该将代码修改为:
if($_FILES["fileToUpload"])
答案 1 :(得分:0)
根据文档("Error Messages Explained")$_FILES["fileToUpload"]['error']
,如果没有上传文件,则其值为4.
if( $_FILES['picture']['error'] != 4 ) {
echo "Do stuff...";
} else {
echo "No image";
}
答案 2 :(得分: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
}
以下是参考资料: