每当我上传一个高于1mb限制的jpg或png文件时,如果脚本声明文件格式和文件大小都与条件不匹配,则脚本会显示第一个。我希望它将jpg和png格式识别为正确的格式。其他变体(不同的文件类型,jpgs< 1mb确实有意义) html文件:
<html>
<head>
<title>Post your images</title>
</head>
<body>
<form action="upload_file.php" method="post"
enctype="multipart/form-data">
Ttile: <input type="text" name="title" id="title"> <br>
Watermark: <input type="text" name="watermark" id="watermark"> <br>
<label for="file">Filename:</label>
<input type="file" name="file" id="file"><br>
<input type="submit" name="submit" value="Submit">
</form>
</body>
</html>
php文件:
<!DOCTYPE html>
<html>
<head>
<title>Gallery</title></head>
<body>
<?php
$allowedExts = array("jpeg", "jpg", "png");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);
if ((($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/png"))
&& ($_FILES["file"]["size"] < 1048576)
&& in_array($extension, $allowedExts))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Error: " . $_FILES["file"]["error"] . "<br>";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br>";
echo "File Type: " . $extension . "<br>";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/" . $_FILES["file"]["name"]);
echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
}
}
elseif(
($_FILES["file"]["type"] !== "image/jpeg")
and ($_FILES["file"]["type"] !== "image/jpg")
and ($_FILES["file"]["type"] !== "image/png")
and ($_FILES["file"]["size"] < 1048576)
)
{
echo "Wrong file format and too big file<br>";
}
elseif(($_FILES["file"]["size"] < 1048576)){
echo "File is too big, maximum size is 1MB";
}
else{
echo "File format not supported! Supported files formats are png i jpg.";
}
?>
</body>
</html>
答案 0 :(得分:0)
(...) and ($_FILES["file"]["size"] < 1048576)
您是否忘记了执行>
而不是<
?
答案 1 :(得分:0)
你能试试吗,
<?php
$allowedExts = array("jpeg", "jpg", "png");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);
if ((($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/png"))
&& ($_FILES["file"]["size"] < 1048576)
&& in_array($extension, $allowedExts))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Error: " . $_FILES["file"]["error"] . "<br>";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br>";
echo "File Type: " . $extension . "<br>";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/" . $_FILES["file"]["name"]);
echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
}
}
elseif($_FILES["file"]["size"] > 1048576){
echo "File is too big, maximum size is 1MB";
}
else{
echo "File format not supported! Supported files formats are png i jpg.";
}
?>