我是php的新手。我已经搜索了这个问题的解决方案超过1小时但找不到答案。
示例情况:检查上传的文件扩展名&每个故障的大小和回显错误(如果有的话)(在第一次失败时停止)。
到目前为止代码:
$allowedfiletypes = array("image/jpg","image/jpeg","image/png");
if((!in_array($filetype, $allowedfiletypes))) {
echo "Error, disallowed file type.";
} elseif($filesize > 1048576) {
echo 'Filesize too large';
} else {
move_uploaded_file($filetmpname, $uploaddir."/".$filename);
echo 'The file has the following properties:'." ".$filename.", ".$filesize."kb, ".$filetype.".".'<br><br>';
echo ' The file is stored in'.$uploaddir.$filename;
}
但是如果文件大小超过指定的限制,则不起作用。
我该怎样做if() {echo 'error1';} || if {echo 'error2'.} else {}
?
答案 0 :(得分:1)
为什么不使用旗帜?
$error1 = 1;
$error2 = 1;
if($error1 && $error2) { ... }
如果达到特定计数,请使用错误计数器和die
。
答案 1 :(得分:0)
不是100%确定你想要什么,但如果你想向用户显示这两个错误,这应该有效:
$allowedfiletypes = array("image/jpg","image/jpeg","image/png");
$fileTypes = true;
$fileSize = true;
if((!in_array($filetype, $allowedfiletypes)))
$fileTypes = false;
if($filesize > 1048576)
$fileSize = false;
if ($fileSize && $fileTypes) {
move_uploaded_file($filetmpname, $uploaddir."/".$filename);
echo '<p>The file has the following properties:'." ".$filename.", ".$filesize."kb, ".$filetype.".</p>";
echo '<p>The file is stored in'.$uploaddir.$filename.'</p>';
}
else {
if (!$fileSize)
echo '<p>Filesize too large</p>';
if (!$fileTypes)
echo "<p>Error, disallowed file type.</p>";
}