前一段时间做了一个图片上传的小程序,今天有人说jpg图片上传不了。我在本地Chrome、Firefox测了下,发现没有问题,上传正常。我问他用什么浏览器,原来是世界之窗、还有360......我囧。我想,是不是IE的问题?于是我在IE下测了,果然不行。原来的程序如下:
    switch($type)
    {
        case "image/jpeg":
        $resultImage = imagecreatefromjpeg($original);
        imagejpeg($resultImage, $target, $quality);
        break;
         
        case "image/png":
        $resultImage = imagecreatefrompng($original);
        imagepng($resultImage, $target, $quality_png);
        break;
         
        case "image/gif":
        $resultImage = imagecreatefromgif($original);
        imagegif($resultImage, $target, $quality);
        break;
         
        default :
        die("不支持此文件类型");
        exit;
    }

后来google了下,发现关于jpg格式的图片在IE下确实有些差异。

在IE下上传一副jpg图片,然后打印该上传文件的信息如下:
    Array
    (
        [name] => nowamagic.jpg
        [type] => image/pjpeg
        [tmp_name] => /tmp/phprY0loE
        [error] => 0
        [size] => 71189
    )

jpg格式的图片的Mimetype为image/pjpeg。由于开发中都用Chrome或者Firefox开发,在判断时并没有加image/pjpeg,所以导致jpg格式的图片在IE内核的浏览器无法被识别。

下面是各格式图片在不同浏览器中的格式对照:
    firefox image/jpeg image/bmp image/gif image/png
    ie 6 image/pjpeg image/bmp image/gif image/x-png
    ie 7 image/pjpeg image/bmp image/gif image/x-png
    ie 8 image/pjpeg image/bmp image/gif image/x-png

传图片时,ie会把 jpg、jpeg翻译成image/pjpeg,png翻译成image/x-png 。而火狐则很标准:jpg、jpeg翻译成image/jpeg,png翻译成image/png。

程序改成这样就OK了。
    switch($type)
    {
        case "image/jpeg":
        $resultImage = imagecreatefromjpeg($original);
        imagejpeg($resultImage, $target, $quality);
        break;
         
        case "image/pjpeg":
        $resultImage = imagecreatefromjpeg($original);
        imagejpeg($resultImage, $target, $quality);
        break;
         
        case "image/png":
        $resultImage = imagecreatefrompng($original);
        imagepng($resultImage, $target, $quality_png);
        break;
         
        case "image/gif":
        $resultImage = imagecreatefromgif($original);
        imagegif($resultImage, $target, $quality);
        break;
         
        default :
        die("不支持此文件类型");
        exit;
    }

注:如需转载本文,请注明出处(原文链接),谢谢。更多精彩内容,请进入简明现代魔法首页。

JPG图片上传在IE下的问题相关推荐

  1. jeesite4中图片上传功能

    图片上传 一般情况下的图片上传 1.添加图片上传标签 2.修改service中的save方法 将图片保存到实体属性中 1.修改图片上传标签,修改后的如下 效果 将图片保存到对象的拓展表中 1.代码如下 ...

  2. 配置typora图片上传服务器

    配置typora图片上传服务器 windows下 第一种方案 简单配置(纯图形操作,如果有代码基础推荐直接看第二种) 下载最新版本的typora,安装好后,在左侧打开设置 设置里打开图像,选择上传图片 ...

  3. vue中图片上传及回显

    在vue中图片上传到服务器下指定路径,并实现根据图片路径调取后台接口返回图片流在vue页面展示图片 一.图片上传 1.前台上传 <template slot-scope="scope& ...

  4. 【报错笔记】在做图片上传时上传图片后可以跳转到上传成功界面,也没有报错,数据库中也传入了值,可是eclipse中webapp下怎样都无法生存目录。

    在做图片上传时上传图片后可以跳转到上传成功界面,也没有报错,数据库中也传入了值,可是eclipse中webapp下怎样都无法生存目录. 我使用UUID生成8级目录,在webapp下创建目录,将图片传进 ...

  5. java下传图片到tomcat服务器后,如何在页面显示,java图片上传服务器及客户端显示图片...

    我在上一篇文章SSM+Layui实现文件上传服务器中展示了如何将图片上传至服务器,保存到SQL server数据库中,本篇文章主要讲的是将图片上传到服务器上,保存在服务器的磁盘上,然后将图片路径保存到 ...

  6. Ubuntu 下配置 Typora 图片上传到 smms

    Ubuntu 下配置 Typora 图片上传到 smms 首先在这里安装 PicGo,在Typora中的:File / Preferences / Image部分,找到Download and Upg ...

  7. thinkphp下的图片上传

    关于图片上传,实现方法很多,比如可以用jQuery,当然,我们的thinkPHP内置了关于图片上传的功能,我们可以直接使用,使用方法如下: 首先,是表单书写,我们建立如下表单: [html] view ...

  8. 图片上传预览的几种方式,了解下?

    图片上传预览场景基本处处可见,朋友圈发动态配图,身份验证及头像更新,莫过如斯. 原由 最近在研究twitter PC网站的时候,在个人中心的主页,设置个人的背景图的时候,发现twitter有个非常好的 ...

  9. js将图片上传服务器文件夹下,Egg.js 实现向服务器上传图片

    1.安装时间处理 及 压缩 模块 yarn add silly-datetime pump 2.文件保存路径 config/config.default.js config.uploadDir = ' ...

最新文章

  1. 与《管理幸福》一书作者Jurgen Appelo的访谈
  2. retinaface 训练笔记
  3. PHP的 preg_match_all
  4. java线程在什么时候结束,java – 什么时候线程超出范围?
  5. matlab 作图 虚线太长,matlab 极坐标绘图 在matlab中,用polar画的图形,如何使虚线圆多显示几个?...
  6. oracle升级后报 06502,Oracle数据库升级后报ORA-00704和ORA-39700错误
  7. 自定义DataAnnotations
  8. Python项目实战
  9. mysql 时间小于_删库不必跑路,自己动手MySQL数据恢复,真香~~
  10. C/C++函数的本质以及多线程函数的调用过程
  11. python 连接sql server
  12. python学习笔记一:python基础知识
  13. Android 自动化测试 常用的命令----随时更新
  14. Linux中关于链表的遍历
  15. 机器学习(一)协同过滤推荐算法
  16. 吐槽表情包计算机系,网友用表情包形容自己的专业 分明是场吐槽大会
  17. ntds(600)ntdsa:系统错误1453配额不足及恢复过程记录
  18. 微软服务器模式表格多维,用挖掘功能实现多元回归分析
  19. 学习笔记——OFDM仿真课设
  20. JAVA 获取本机IP(包括 内网IP 和 公网IP)

热门文章

  1. hualinux java 1.17:java开发规范(新手必看)
  2. Spring中的IOC容器原理
  3. ArcGIS10.2安装教程(win11版)
  4. ACIS,Parasolid两种CAD几何内核的优劣势对比
  5. 3dmax提示加载插件dll出错,代码193怎么办?代码193是什么意思?
  6. python Logger 高级教程
  7. 7-207 孔融分梨(函数实现)
  8. Ubantu18.04系统安装Hexagon SDK教程
  9. 个人报错TypeError: ‘type‘ object is not iterable
  10. 黑客美学 ——《黑客与画家》读书笔记