最新公告
  • 欢迎您光临八戒源码资源站,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • 解决https下IE上传图片不显示问题
    版本 dx 3.3

    估计3.4一样有这个问题,ie内核的浏览器下在上传后,缩略图都是显示xx。

    这个问题主要还是https下,对图片输出的时候 不能使用
    dheader(‘Content-Type: image’);
    复制代码

    必须要明确到jpeg,png这里。

    在forum_image.php文件里59行左右
    需要改为

    dheader('Content-Type: image/jpeg');

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

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

    这样会让png的图片无法显示出来。

    可以增加一个函数,来获取mime类型。

    function get_image_extension($image){
         $extension = pathinfo($filename,PATHINFO_EXTENSION);
         if(in_array($extension,['jpg','jpeg','png','gif','bmp'])){
          return  'image/'.$extension;
    }
        return 'image';
    }

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

    php 5.3之后可以使用

    function get_image_extension($filename){
            $finfo = finfo_open(FILEINFO_MIME_TYPE);
            $rs = '';
            if (!$finfo) {
                return 'image';
            }
            $rs = finfo_file($finfo, $filename);
            finfo_close($finfo);
            return $rs;
    }
    <?php
    
    /**
    *      [Discuz!] (C)2001-2099 Comsenz Inc.
    *      This is NOT a freeware, use is subject to license terms
    *
    *      $Id: forum_image.php 32531 2013-02-06 10:15:19Z zhangguosheng $
    */
    
    if(!defined('IN_DISCUZ') || empty($_GET['aid']) || empty($_GET['size']) || empty($_GET['key'])) {
            header('location: '.$_G['siteurl'].'static/image/common/none.gif');
            exit;
    }
    
    $nocache = !empty($_GET['nocache']) ? 1 : 0;
    $daid = intval($_GET['aid']);
    $type = !empty($_GET['type']) ? $_GET['type'] : 'fixwr';
    list($w, $h) = explode('x', $_GET['size']);
    $dw = intval($w);
    $dh = intval($h);
    $thumbfile = 'image/'.helper_attach::makethumbpath($daid, $dw, $dh);$attachurl = helper_attach::attachpreurl();
    function get_image_extension($filename){
            $finfo = finfo_open(FILEINFO_MIME_TYPE);
            $rs = '';
            if (!$finfo) {
                return 'image';
            }
            $rs = finfo_file($finfo, $filename);
            finfo_close($finfo);
            return $rs;
    }
    
    if(!$nocache) {
            if(file_exists($_G['setting']['attachdir'].$thumbfile)) {
                    dheader('location: '.$attachurl.$thumbfile);
            }
    }
    
    define('NOROBOT', TRUE);
    
    $id = !empty($_GET['atid']) ? $_GET['atid'] : $daid;
    if(dsign($id.'|'.$dw.'|'.$dh) != $_GET['key']) {
            dheader('location: '.$_G['siteurl'].'static/image/common/none.gif');
    }
    
    if($attach = C::t('forum_attachment_n')->fetch('aid:'.$daid, $daid, array(1, -1))) {
            if(!$dw && !$dh && $attach['tid'] != $id) {
                   dheader('location: '.$_G['siteurl'].'static/image/common/none.gif');
            }
            dheader('Expires: '.gmdate('D, d M Y H:i:s', TIMESTAMP + 3600).' GMT');
            if($attach['remote']) {
                    $filename = $_G['setting']['ftp']['attachurl'].'forum/'.$attach['attachment'];
                    dheader('Content-Type: image');
                    dheader('location: '.$_G['setting']['ftp']['attachurl'].'forum/'.$attach['attachment'].'?imageView2/1/w/'.$dw.'/h/'.$dh.'/format/jpg/interlace/0/q/80');
                    
            } else {
                    $filename = $_G['setting']['attachdir'].'forum/'.$attach['attachment'];
            }
            require_once libfile('class/image');
            $img = new image;
            if($img->Thumb($filename, $thumbfile, $w, $h, $type)) {
                    if($nocache) {
                            $mine = get_image_extension($_G['setting']['attachdir'].$thumbfile);
                            dheader('Content-Type: '.$mine);
                            @readfile($_G['setting']['attachdir'].$thumbfile);
                    //echo file_get_contents($_G['setting']['attachdir'].$thumbfile);
                            @unlink($_G['setting']['attachdir'].$thumbfile);
                    } else {
                            dheader('location: '.$attachurl.$thumbfile);
                    }
            } else {
                    dheader('Content-Type: image');
                    @readfile($filename);
            }
    }
    
    ?>

     

    八戒源码资源网-未经允许不得转载!
    八戒源码资源网 » 解决https下IE上传图片不显示问题

    发表评论