PHP图像标头和JavaScript加载

时间:2010-12-18 14:35:01

标签: php javascript http-headers

我在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

2 个答案:

答案 0 :(得分:1)

输出的前4个字节看起来像一个有效的PNG标头。

请确认$ post-> post_mime_type为“image / png”。

我不知道该框架,它可能会被不常见的“Content-Disposition:inline”标题弄糊涂,请删除该行。

答案 1 :(得分:1)

http://fancybox.net/faq

上找到了这个
  

FancyBox从网址中猜测内容类型,但有时可能是错误的。解决方案是强制>您的类型,如此 - $(“。selector”)。fancybox({'type':'image'});   (所需版本1.3 +)