您好,欢迎来到菜鸟吧源码网-本站资源仅供学习与参考,禁止用于商业或违法行为!
  • 首 页
  •  

    当前位置:主页 > 站长学堂 > discuz教程 >
    [discuz教程] 解决https下IE上传图片不显示问题
    时间:2024-09-22 19:04 作者:菜鸟哥 浏览:收藏 挑错 打印

    内容

    解决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. ?>

    郑重声明:
    本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。 若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。
    我们不承担任何技术及版权问题,且不对任何资源负法律责任。
    如无法下载,联系站长索要。
    如有侵犯您的版权,请给我们来信:cainiaovip8@qq.com,我们尽快处理。

    Discuz应用中心安装插件提示“数据下载错误(105)”的解决办法Discuz应用中心安装插件提示“数据下载
    DISCUZ论坛添加页头及页尾背景图片的几种方法DISCUZ论坛添加页头及页尾背景图片的几
    DiscuzX发帖默认隐藏附件/图片/链接/视频等设置教程DiscuzX发帖默认隐藏附件/图片/链接/视