我这里有一个小问题。这是在上传图像文件之前验证图像文件的一串代码的一部分。
//Check if the image is real or fake (fyi 1 is good 0 is not good)
if($uploadOK){
$check = getimagesize($_FILES["banner_708"]["tmp_name"]);
if($check !== false || !empty($check)) {
$uploadOK = 1;
}
else {
$uploadOK = 0;
array_push($banner_msg_array, "This is not a valid image.");
}
}
问题是文件太大时。在上面的代码中最终发生的是getimagesize()
评估为空。然后我在else
语句中得到了我自己的array_push消息,但也出现了系统错误:
警告:getimagesize():
中的文件名不能为空
我认为上面的逻辑if($check !== false || !empty($check))
会消除这个错误;如果它是假的或空的,那么转到else
并推送阵列。它有点,但为什么系统错误?我怎么能摆脱这个?
我确实有整体代码检查文件大小,但无论我放置它的顺序,在上面的代码之前或之后,我仍然会在文件太大时收到此系统警告,我认为这是因为getimagesize()
无需评估。问题是可以改变什么来消除这个?
任何帮助将不胜感激。
答案 0 :(得分:0)
检查文件是否被正确接收。
if ($_FILES["banner_708"]["error"]){
$uploadOK = 0;
$banner_msg_array[] = "Image could not be uploaded";
} else {
$check = getimagesize($_FILES["banner_708"]["tmp_name"]);
if($check !== false || !empty($check)) {
$uploadOK = 1;
}
else {
$uploadOK = 0;
array_push($banner_msg_array, "This is not a valid image.");
}
}