[英]PHP Link to image outside root folder [a href, not img src]
这是我的情况:图像存储在根文件夹之外。 我可以使用外部php文件(应该是)访问它们,然后使用file_get_contents
然后echo
img src
然后它将完美显示。
我安装了厚箱,我想要发生的是当用户点击图像时,它会在厚箱中放大显示
<a href="img.jpg" class="thickbox"><img src="my_image_processing.php?img=img.jpg" />
我正在尝试点击时创建一个画廊。 会发生什么是厚箱出现但图像没有。 而不是图像,乱码/垃圾代码显示黑色钻石带有问号。 我想这是图像的原始代码。
如何将其输出为图像而不是原始代码
<a href> 's
补充:我刚刚玩了一下。 当我删除thickbox类时, a href
实际上是有效的。 它会在下一页正常显示图像。 不幸的是,当我附加thickbox类时,它显示了thickbox,但它显示了原始代码
在您的示例中,您直接使用jpg文件,它应该是这样的:
<a href="my_image_processing.php?img=img.jpg" class="thickbox"><img src="my_image_processing.php?img=img.jpg" />
也就是说,读取隐藏文件夹并返回图像的php页面。
尝试:
header ("Content-type: image/jpeg");
如果您将原始图像数据视为文本,则可能是您的浏览器无法将输出识别为图像。 您可以使用上面的标题行发出正确的mime类型信号。
也可能发生错误并且错误消息使图像文件不可读(因为流而不是标头以错误消息开始)。 在这种情况下,您应该在字符前看到错误消息。
Thickbox识别由文件扩展名链接的资源的类型,以确定它是否是要显示的图像。 它在确定扩展时也会忽略查询字符串。 因此,您有以下选择:
my_image_processing/img.jpg
这样的URL代替my_image_processing.php?img=img.jpg
(搜索“mod_rewrite”的更多信息), 有一件事是让Thickbox认为它加载图像,而不是页面加载到框架中,第二个是 - 正如vbence指出的那样 - 在你用脚本返回的图像中添加适当的mime类型:你应该添加适当的标题“Content-Type “信息。
编辑:
负责显示图像的代码如下所示[原文如此!]:
var baseURL;
if(url.indexOf("?")!==-1){ //ff there is a query string involved
baseURL = url.substr(0, url.indexOf("?"));
}else{
baseURL = url;
}
var urlString = /\.jpg$|\.jpeg$|\.png$|\.gif$|\.bmp$/;
var urlType = baseURL.toLowerCase().match(urlString);
if(urlType == '.jpg' || urlType == '.jpeg' || urlType == '.png' || urlType == '.gif' || urlType == '.bmp'){//code to show images
您可能希望添加另一种类型('php'),如果您选择自己修改脚本,但您应该了解其后果。
EDIT2:
如果你使用'更改插件'选项,有一些替代( ColorBox ),使你能够决定而不需要深入研究代码,是否应将* .php链接视为图像。 只需在文档中查找photo
选项(当设置photo=true
应该按照您的预期运行)。
您可能忽略了用于显示图像的http标头。
header("Content-type: image/jpeg");
header("Content-Disposition: attachment;");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.