Javascript 用php和fancy box显示图像

Javascript 用php和fancy box显示图像,javascript,php,jquery,fancybox,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) )

我正在用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请求的firebug中。

我遇到了类似的问题,发现fancybox并不总是能够很好地处理动态生成的图像。我的解决方案是在.htaccess中重写。我使用的是带有isapi重写的.net,但规则将类似。有点像

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


这对我起了作用。(image.ashx将是您的php文件)

我通过添加

  "type":"image"

对于fancybox config

来说,这可能会帮助您分解文件名,然后测试数组,而不是数组$ext(实际文件扩展名)的最后一个索引。你想要开关($ext[count($ext)-1]),而我要尝试一下。我们通常会先选择托盘/错误方法,而不是阅读文档;)=>常见问题选项卡==>5号