首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.jpg和.JPG有什么区别吗?

.jpg和.JPG有什么区别吗?
EN

Stack Overflow用户
提问于 2017-01-23 18:49:55
回答 1查看 9.1K关注 0票数 1

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

代码语言:javascript
复制
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文件按预期工作。导致此问题的原因可能是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-23 19:04:51

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

代码语言:javascript
复制
$file_name = date('d') . date('M') . $_FILES['file']['name'];

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

代码语言:javascript
复制
$file_name = date('d') . date('M') . strtolower($_FILES['file']['name']);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41804564

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档