显示图像与PHP和花式框

时间:2014-04-08 13:10:01

标签: javascript php jquery fancybox

我用php显示我的图像。

function showImage( $id = 0 ){

        $img = $this->db->where('id' ,  $id )->get('images');
        $src = base_url('files').'/'.$img['filename'] ;

        $ext = explode('.' , $img['filename']);

        switch( end($ext) ) {
            case "gif": $ctype="image/gif"; break;
            case "png": $ctype="image/png"; break;
            case "jpeg":
            case "jpg": $ctype="image/jpg"; break;
            default:
        }

        header('Content-type: ' . $ctype);
        echo file_get_contents($src);
}

当我将地址直接放在浏览器中时它工作正常,但是当我用fancybox调用它时 它显示了一个非常大的屏幕,其中没有任何东西,我得到了很多

���F���!1AQ"aq� 2��#B��R�3�$r��Cb�%&4c�����������������������#�������!1AQa2"q������?��P�����������

在萤火虫中响应fancybox ajax请求。

2 个答案:

答案 0 :(得分:0)

我遇到了类似的问题,发现fancybox并不能很好地与动态生成的图像配合使用。我的解决方案是在.htaccess中重写。我使用.net和isapi重写,但规则将类似。这就像

/([0-9])/([^ /。] +)。(jpg | gif | jpeg | png)$ /image.ashx?id=$1&filename=$2&extension=$3 < / p>

这对我有用。 (image.ashx将是你的php文件)

答案 1 :(得分:0)

我通过添加

解决了这个问题
  "type":"image"

到fancybox配置