[discuz教程] 解决https下IE上传图片不显示问题

[discuz教程] 解决https下IE上传图片不显示问题

  • 最近更新2022年12月14日
免费下载

    免登录购买勿关闭cookies或开启无痕浏览,否则不能获取下载地址,正常15内可再次下载
    特别声明:注册会员根据级别享有相关下载优惠,请仔细辨别。所有资源均收集于互联网仅供学习、参考和研究,请理解这个概念,所以不能保证每个细节都符合你的需求,也可能存在未知的BUG与瑕疵, 你下载的资源和程序源码组件因其特殊性均为可复制品,所以不支持任何理由的退款兑现,请认真阅读本站声明和相关条款后再点击支付下载。

    解决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. ?>
    分享到 :
    相关推荐

    【讯客分类信息系统】最新大气含手机版php源码

    源码介绍:最新讯客分类信息系统PHP版商业版,模板很大气,含手机版,分享给大家!讯客...

    仿微信IM即时通讯v1.0.89尝鲜版 聊天系统+朋友圈+钱包+多语言

    仿微信IM即时通讯v1.0.89尝鲜版是一款仿微信类似简约版聊天系统,涵盖私聊、群聊...

    强大的房产门户多城市商业版V8.4(08cms+带手机端+带升级补丁)

    大型房产门户08cms多城市商业版V8.4(带升级补丁)带手机独家放送强大的房产[&...

    Thinkphp在线教学网站源码

    最新ThinkPHP内核二次开发在线教学网整站程序+内置贴吧+考试系统+WAP手[&...

    发表回复

    登录... 后才能评论