您当前的位置: 首页 > 网站编程 > PHP教程 > JPG图片上传在IE下的问题

JPG图片上传在IE下的问题

作者:xiaoxiao 来源:未知 发布时间: 2014-01-09 15:08 点击:
前一段时间做了一个图片上传的小程序,今天有人说jpg图片上传不了。我在本地Chrome、Firefox测了下,发现没有问题,上传正常。我问他用什么浏览器,原来是世界之窗、还有360......我囧。我想,是不是IE的问题?于是我在IE下测了,果然不行。原来的程序如下: switch($t

JPG图片上传在IE下的问题

  前一段时间做了一个图片上传的小程序,今天有人说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)
100%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4