本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

.JPG 和 .jpg 之间有区别吗?

发布于2024-11-30 03:34     阅读(387)     评论(0)     点赞(5)     收藏(0)


以下代码生成缩略图并创建压缩图像和上传图像。

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);
            }
        }
    }     
}

结果是一些图像存储带有 .JPG 扩展名或一些存储带有 .jpg 但主要问题是具有大写扩展名的文件(特别是 .JPG)无法在 Windows Live 照片库中打开或被识别。.jpg 文件按预期工作。什么可能导致此问题?


解决方案


在进行所有正确的扩展名类型等测试之前,您都将扩展名改为小写,但是当您保存文件时,您使用的是原始文件中的任何内容$_FILES['file']['name']

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

因此在保存文件之前也对原始文件名执行 strtolower

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


所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:http://www.phpheidong.com/blog/article/556015/f16acfd775fdf308639c/

来源:php黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

5 0
收藏该文
已收藏

评论内容:(最多支持255个字符)