Javascript 用php和fancy box显示图像
我正在用php显示我的图像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) )
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号