我一直在我的网站上使用shadowbox而没有问题,暂时没有问题。我创建了一个PHP文件来提供受保护文件夹中的媒体内容。以下是download.php中的内容:
<?php
$fullpath="/home/user/media/image1.jpg";
header("Content-Type: image/jpeg");
header('Content-Transfer-Encoding: binary');
header('Content-Disposition: inline; filename='.basename($filename));
header("Content-Length: " . filesize($fullpath));
readfile($fullpath);
exit;
?>
如果我使用IMG标签调用它或尝试下载图像,这种方法效果很好。例如:
<img src="download.php?id=123" />
但是,如果我使用shadowbox,浏览器会变暗,我甚至无法获得加载动画,也不会显示任何内容。
<a href="download.php?id=358" rel="shadowbox[test]"><img src="download.php?id=358"/></a>
上图中的图像显示正常,但单击时不会加载阴影框。
提前致谢!
答案 0 :(得分:1)
问题 - 就你的情况而言 - Shadowbox在获取内容之前检查文件扩展名。如果您在shadowbox.js内搜索(尝试搜索img.ext),您会在某处找到它:
img.ext=["bmp","gif","jpg","jpeg","png"];
所以,您可以尝试添加PHP以稍微松开它,Shadowbox将很乐意抓住您的图像:
img.ext=["bmp","gif","jpg","jpeg","png","php"];
或者,您可以将您的php文件保存为jpg(听起来很奇怪,没有?)并强制服务器将其作为php文件处理。例如,如果您使用Apache并且允许.htaccess
,则可以尝试使用以下内容创建.htaccess
(或将这些行添加到现有.htaccess
文件中):
<files download.jpg>
ForceType application/x-httpd-php
</files>
答案 1 :(得分:-1)
不会在htaccess级别上关闭图像的php是一个巨大的安全隐患吗?