1

below code generate thumbnail and create compress image and upload image.

if (!empty($_FILES)) {
    $tempFile = $_FILES['file']['tmp_name'];          //3             

    define ("MAX_SIZE","400");
    function getExtension($str) {
        $i = strrpos($str,".");
        if (!$i) { return ""; }
        $l = strlen($str) - $i;
        $ext = substr($str,$i+1,$l);
        return $ext;
    }

    $errors=0;

    if($_SERVER["REQUEST_METHOD"] == "POST") {
        $image =$_FILES["file"]["name"];
        $uploadedfile = $_FILES['file']['tmp_name'];

        if ($image) {
            $filename = stripslashes($_FILES['file']['name']);
            $extension = getExtension($filename);
            $extension = strtolower($extension);

            if (($extension != "jpg") && ($extension != "jpeg") && ($extension != "png") && ($extension != "gif")) {
                $change='<div class="msgdiv">Unknown Image extension </div> ';
                $errors=1;
            } else {
                $size=filesize($_FILES['file']['tmp_name']);

                if ($size > MAX_SIZE*1024) {
                    $change='<div class="msgdiv">You have exceeded the size limit!</div> ';
                    $errors=1;
                }


                if($extension=="jpg" || $extension=="jpeg" ) {
                    $uploadedfile = $_FILES['file']['tmp_name'];
                    $src = imagecreatefromjpeg($uploadedfile);
                } else if($extension=="png") {
                    $uploadedfile = $_FILES['file']['tmp_name'];
                    $src = imagecreatefrompng($uploadedfile);
                } else {
                    $src = imagecreatefromgif($uploadedfile);
                }
                echo $scr;
                list($width,$height)=getimagesize($uploadedfile);

                $newwidth=600;
                $newheight=($height/$width)*$newwidth;
                $tmp=imagecreatetruecolor($newwidth,$newheight);

                $newwidth1=125;
                $newheight1=($height/$width)*$newwidth1;
                $tmp1=imagecreatetruecolor($newwidth1,$newheight1);
                imagecopyresampled($tmp,$src,0,0,0,0,$newwidth,$newheight,$width,$height);
                        imagecopyresampled($tmp1,$src,0,0,0,0,$newwidth1,$newheight1,$width,$height);

                $file_name = date('d') . date('M') . $_FILES['file']['name'];
                $filename = "upload/gallery/". $file_name;
                $filename1 = "upload/thumb/". $file_name;

                imagejpeg($tmp,$filename,100);
                imagejpeg($tmp1,$filename1,100);
                imagedestroy($src);
                imagedestroy($tmp);
                imagedestroy($tmp1);
            }
        }
    }     
}

Result is some image store with .JPG extension or some of stored with .jpg But, main problem is occurred that files that have uppercase extensions (specifically .JPG) are not opening or being recognized in Windows Live Photo Gallery. .jpg files work as expected. What could be causing this issue?

Manoj Sharma
  • 1,467
  • 2
  • 13
  • 20
JH_
  • 406
  • 1
  • 4
  • 15

1 Answers1

0

You are lower casing the extension before all the test for the correct extension type etc, but when you come to save the file you are using whatever is in the raw $_FILES['file']['name']

$file_name = date('d') . date('M') . $_FILES['file']['name'];

So do a strtolower on the raw filename as well before saving the file

$file_name = date('d') . date('M') . strtolower($_FILES['file']['name']);
RiggsFolly
  • 93,638
  • 21
  • 103
  • 149