Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过PHP提供的图像赢得';不要在暗箱中加载_Php_Shadowbox - Fatal编程技术网

通过PHP提供的图像赢得';不要在暗箱中加载

通过PHP提供的图像赢得';不要在暗箱中加载,php,shadowbox,Php,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='.

我已经在没有问题的网站上使用了一段时间了。我已经创建了一个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>

与上面的示例一样,图像将显示良好,但单击时不会加载阴影框


提前谢谢

您的案例的问题是,在获取内容之前,请检查文件扩展名。如果您在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
文件),方法是:


ForceType应用程序/x-httpd-php

在htaccess级别打开图像上的php不是一个巨大的安全风险吗?

在Firebug或开发人员工具中是否有JS控制台错误?我看不到任何错误;它的行为就像将.php文件作为图像加载一样。我已经在Firefox/Firebug和Chrome上试过了。你在Apache上吗?允许使用htaccess吗?效果很好!我将PHP添加到图像列表中,现在它可以正常加载。当我得到足够的信任时,我会投票支持这个/令人惊讶的是,这几个月来一直困扰着我编程潜意识的编年史!!这并不能回答这个问题。要评论或要求作者澄清,请在他们的帖子下方留下评论-你可以随时在自己的帖子上发表评论,一旦你有足够的评论,你就可以发表评论了。我理解你所说的背后的原因,但不要将会产生安全风险的信息放在那里难道不重要吗?我没有50岁的代表,因为我很少在堆栈上发布任何东西,但这是一种不负责任的尖叫,在没有后果警告的情况下提供这样的答案。
<files download.jpg>
  ForceType application/x-httpd-php
</files>