我在fancybox中显示图像有很大问题。
PHP使用header()
和readfile()
“生成”图像。
当我直接从浏览器访问脚本时,一切正常,但是当来自fancybox的请求时,JavaScript突然停止响应,并且在加载内容区域中很长一段时间后,我得到二进制代码而不是图像。
以下是代码:
ob_clean();
header('Content-Type: '.$post->post_mime_type);
$name = basename($post->guid);
$base = home_url();
$path= $_SERVER{'DOCUMENT_ROOT'}.str_replace($base,'',$post->guid);
header ('Content-Disposition: inline; filename='.$name);
header ('Content-length: ' .filesize($path));
readfile($path);
加载到fancybox中的内容屏幕:http://img502.imageshack.us/img502/8535/screenq.png
答案 0 :(得分:1)
输出的前4个字节看起来像一个有效的PNG标头。
请确认$ post-> post_mime_type为“image / png”。
我不知道该框架,它可能会被不常见的“Content-Disposition:inline”标题弄糊涂,请删除该行。
答案 1 :(得分:1)
FancyBox从网址中猜测内容类型,但有时可能是错误的。解决方案是强制>您的类型,如此 - $(“。selector”)。fancybox({'type':'image'}); (所需版本1.3 +)