PHP doesn't recognize "image/png"? Why?

myscranton

New member
This is my code. I am working on an image uploader. JPG and GIF files are uploaded fine. But when it comes to PNG, I get the error that the file type is not supported and it won't upload it? Why?

<?php
if (isset($_FILES["file"])){
if ((($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/png"))
&& ($_FILES["file"]["size"] <= 200000))
{
$imagename = $_FILES["file"]["name"];
$src = $_FILES["file"]["tmp_name"];
$destination = ($_SERVER['DOCUMENT_ROOT'] )."/uploads/images/".$imagename;
move_uploaded_file($src, $destination);

$file = ($_SERVER['DOCUMENT_ROOT'] )."/uploads/images/".$_FILES["file"]
["name"];
$filetype = $_FILES["file"]["type"];
list($width,$height) = getimagesize($file);

if ($width > 250) {
$new_width = "250";
$new_height = ($height/$width)*$new_width;
$new_file = imagecreatetruecolor($new_width, $new_height);

if ($filetype == "image/jpeg")
{
$image = imagecreatefromjpeg($file);
}

else if ($filetype == "image/pjpeg")
{
$image = imagecreatefromjpeg($file);
}

else if ($filetype == "image/png")
{
$image = imagecreatefrompng($file);
}

else
{
$image = imagecreatefromgif($file);
}

imagecopyresampled($new_file, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

if ($filetype == "image/jpeg" || $filetype == "image/pjpeg") {
imagejpeg($new_file,$file,100);
}

else if ($filetype == "image/png") {
imagepng($new_file,$file,100);
}

else {
imagegif($new_file,$file,100);
}
}
}

else if (($_FILES["file"]["type"] != "image/pjpeg")
|| ($_FILES["file"]["type"] != "image/jpeg")
|| ($_FILES["file"]["type"] != "image/png")
|| ($_FILES["file"]["type"] != "image/gif"))

{
echo "<script language=\"javascript\">alert(\"Error! The file was not of supported format!\")</script>";
return false;
}

else
{
echo "<script language=\"javascript\">alert(\"Error! The file was too large!\")</script>";
return false;
}
}
?>
 
Back
Top