[英]Problem while checking image type and image size
我正在從管理控制台上傳圖像。 它被發送到imageupload.php
頁面。 代碼如下。
問題是,如果我上傳的圖像超過3 mb,它仍然說文件類型無效。 代碼有什么問題? 為什么總是只顯示無效的文件類型警報? 對於正確的圖像,它工作正常。
還請建議對本代碼進行增強。 如何使它更好。
<?php
include "dblink.php";
include "session.php";
if (isset($_SESSION['userbu'])) {
if (isset($_FILES['image'])) {
$len = count($_FILES['image']['name']);
$image = $_FILES['image'];
$img_name = $_FILES['image']['name'][0];
$img_size = $_FILES['image']['size'][0];
$tmp_dir = $_FILES['image']['tmp_name'][0];
$type = $_FILES['image']['type'][0];
$checktype = 1;
$checksize = 1;
for ($i = 0; $i < $len; $i++) {
if ($_FILES['image']['type'][$i] == "image/jpeg" || $_FILES['image']['type'][$i] == "image/jpg" || $_FILES['image']['type'][$i] == "image/png") {
if ($_FILES['image']['size'][$i] <= '3145728') {
} else {
$checksize = 0;
break;
}
} else {
$checktype = 0;
break;
}
}
if ($checksize == 1 && $checktype == 1) {
for ($i = 0; $i < $len; $i++) {
move_uploaded_file($_FILES['image']['tmp_name'][$i], "imagesbu/" . $_FILES['image']['name'][$i]);
}
echo '<script language="javascript">';
echo 'if(alert("Successfully Added")){} ';
echo 'else{window.location = "carousel.php"}';
echo '</script>';
} elseif ($checksize == 0) {
echo '<script language="javascript">';
echo 'if(alert("Invalid file size")){} ';
echo 'else{window.location = "carousel.php"}';
echo '</script>';
} elseif ($checktype == 0) {
echo '<script language="javascript">';
echo 'if(alert("Invalid file type")){} ';
echo 'else{window.location = "carousel.php"}';
echo '</script>';
} else {
echo '<script language="javascript">';
echo 'if(alert("Invalid file type/size")){} ';
echo 'else{window.location = "carousel.php"}';
echo '</script>';
}
} else {
header("location:dashboard.php");
}
} else {
header("location:adminlogin.html");
}
?>
關於if/else
,如果滿足任何最高條件,則程序將不會尋找另一個elseif
。 因此,您可以這樣做來解決您的問題:
if($checksize==1 && $checktype==1)
{
for($i=0;$i<$len;$i++)
{
move_uploaded_file($_FILES['image']['tmp_name'][$i],"imagesbu/".$_FILES['image']['name'][$i]);
}
echo '<script language="javascript">';
echo 'if(alert("Successfully Added")){} ';
echo 'else{window.location = "carousel.php"}';
echo '</script>';
}
else{
if($checksize==0)
{
echo '<script language="javascript">';
echo 'if(alert("Invalid file size")){} ';
echo 'else{window.location = "carousel.php"}';
echo '</script>';
}
if($checktype==0)
{
echo '<script language="javascript">';
echo 'if(alert("Invalid file type")){} ';
echo 'else{window.location = "carousel.php"}';
echo '</script>';
}
}
關於優化代碼,您可以避免多次編寫相同的內容,例如:
if($checksize==1 && $checktype==1)
{
for($i=0;$i<$len;$i++)
{
move_uploaded_file($_FILES['image']['tmp_name'][$i],"imagesbu/".$_FILES['image']['name'][$i]);
}
$msg = "Uploaded successfully";
}
else{
if($checksize==0 && $checktype==0)
{
$msg = "Invalid file type/size";
}
elseif($checktype==0)
{
$msg = "Invalid file type";
}else{
$msg = "Invalid file size";
}
}
echo '<script language="javascript">';
echo 'alert("'.$msg.'");';
echo 'window.location = "carousel.php";';
echo '</script>';
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.