最新公告
  • 注:本站源码仅做学术研究,自娱自乐使用,不得用于赌.博性质的非法商业用途 如需充值请联系客服
  • [discuz教程] 解决https下IE上传图片不显示问题

    解决https下IE上传图片不显示问题
    版本 dx 3.3
    估计3.4一样有这个问题,ie内核的浏览器下在上传后,缩略图都是显示xx。
    这个问题主要还是https下,对图片输出的时候 不能使用
    dheader(‘Content-Type: image’);
    必须要明确到jpeg,png这里。
    在forum_image.php文件里59行左右
    需要改为

    1. dheader(‘Content-Type: image/jpeg’);

    复制代码
    当然这个并不完美

    1. if($img->Thumb($filename, $thumbfile, $w, $h, $type)) {
    2.                 if($nocache) {
    3.                         dheader(‘Content-Type: image/jpeg’);
    4.                         @readfile($_G[‘setting’][‘attachdir’].$thumbfile);

    这样会让png的图片无法显示出来。
    可以增加一个函数,来获取mime类型。

    1. function get_image_extension($image){
    2.      $extension = pathinfo($filename,PATHINFO_EXTENSION);
    3.      if(in_array($extension,[‘jpg’,’jpeg’,’png’,’gif’,’bmp’])){
    4.       return  ‘image/’.$extension;
    5. }
    6.     return ‘image’;
    7. }

    然后再去修改这个文件里输出的头部。
    才可以彻底解决这个问题。
    php 5.3之后可以使用

    1. function get_image_extension($filename){
    2.         $finfo = finfo_open(FILEINFO_MIME_TYPE);
    3.         $rs = ”;
    4.         if (!$finfo) {
    5.             return ‘image’;
    6.         }
    7.         $rs = finfo_file($finfo, $filename);
    8.         finfo_close($finfo);
    9.         return $rs;
    10. }

     

    1. <?php
    2. /**
    3. *      [Discuz!] (C)2001-2099 Comsenz Inc.
    4. *      This is NOT a freeware, use is subject to license terms
    5. *
    6. *      $Id: forum_image.php 32531 2013-02-06 10:15:19Z zhangguosheng $
    7. */
    8. if(!defined(‘IN_DISCUZ’) || empty($_GET[‘aid’]) || empty($_GET[‘size’]) || empty($_GET[‘key’])) {
    9.         header(‘location: ‘.$_G[‘siteurl’].’static/image/common/none.gif’);
    10.         exit;
    11. }
    12. $nocache = !empty($_GET[‘nocache’]) ? 1 : 0;
    13. $daid = intval($_GET[‘aid’]);
    14. $type = !empty($_GET[‘type’]) ? $_GET[‘type’] : ‘fixwr’;
    15. list($w, $h) = explode(‘x’, $_GET[‘size’]);
    16. $dw = intval($w);
    17. $dh = intval($h);
    18. $thumbfile = ‘image/’.helper_attach::makethumbpath($daid, $dw, $dh);$attachurl = helper_attach::attachpreurl();
    19. function get_image_extension($filename){
    20.         $finfo = finfo_open(FILEINFO_MIME_TYPE);
    21.         $rs = ”;
    22.         if (!$finfo) {
    23.             return ‘image’;
    24.         }
    25.         $rs = finfo_file($finfo, $filename);
    26.         finfo_close($finfo);
    27.         return $rs;
    28. }
    29. if(!$nocache) {
    30.         if(file_exists($_G[‘setting’][‘attachdir’].$thumbfile)) {
    31.                 dheader(‘location: ‘.$attachurl.$thumbfile);
    32.         }
    33. }
    34. define(‘NOROBOT’, TRUE);
    35. $id = !empty($_GET[‘atid’]) ? $_GET[‘atid’] : $daid;
    36. if(dsign($id.’|’.$dw.’|’.$dh) != $_GET[‘key’]) {
    37.         dheader(‘location: ‘.$_G[‘siteurl’].’static/image/common/none.gif’);
    38. }
    39. if($attach = C::t(‘forum_attachment_n’)->fetch(‘aid:’.$daid, $daid, array(1, -1))) {
    40.         if(!$dw && !$dh && $attach[‘tid’] != $id) {
    41.                dheader(‘location: ‘.$_G[‘siteurl’].’static/image/common/none.gif’);
    42.         }
    43.         dheader(‘Expires: ‘.gmdate(‘D, d M Y H:i:s’, TIMESTAMP + 3600).’ GMT’);
    44.         if($attach[‘remote’]) {
    45.                 $filename = $_G[‘setting’][‘ftp’][‘attachurl’].’forum/’.$attach[‘attachment’];
    46.                 dheader(‘Content-Type: image’);
    47.                 dheader(‘location: ‘.$_G[‘setting’][‘ftp’][‘attachurl’].’forum/’.$attach[‘attachment’].’?imageView2/1/w/’.$dw.’/h/’.$dh.’/format/jpg/interlace/0/q/80′);
    48.         } else {
    49.                 $filename = $_G[‘setting’][‘attachdir’].’forum/’.$attach[‘attachment’];
    50.         }
    51.         require_once libfile(‘class/image’);
    52.         $img = new image;
    53.         if($img->Thumb($filename, $thumbfile, $w, $h, $type)) {
    54.                 if($nocache) {
    55.                         $mine = get_image_extension($_G[‘setting’][‘attachdir’].$thumbfile);
    56.                         dheader(‘Content-Type: ‘.$mine);
    57.                         @readfile($_G[‘setting’][‘attachdir’].$thumbfile);
    58.                 //echo file_get_contents($_G[‘setting’][‘attachdir’].$thumbfile);
    59.                         @unlink($_G[‘setting’][‘attachdir’].$thumbfile);
    60.                 } else {
    61.                         dheader(‘location: ‘.$attachurl.$thumbfile);
    62.                 }
    63.         } else {
    64.                 dheader(‘Content-Type: image’);
    65.                 @readfile($filename);
    66.         }
    67. }
    68. ?>
    1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
    2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
    3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
    4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
    5. 如有链接无法下载、失效或广告,请联系管理员处理!
    6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
    7. 如遇到加密压缩包,默认解压密码为"www.shopet.cn",如遇到无法解压的请联系管理员!

    源码铺子 » [discuz教程] 解决https下IE上传图片不显示问题

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    解压密码不对?
    如有遇到解压密码不正确请及时联系我们!

    发表评论

    升级SVIP尊享更多特权立即升级