2014-04-27 174 views
-2

我有一些图像存储在无法通过URL访问的目录中(目录不公开)。从私人目录中显示图像

如何使用PHP在html页面中显示这些图像?

+3

为什么downvote?我可以改变这个问题,如果我错过了一些东西,只需告诉我... – Matthew

+0

该目录是否可以用'exec'命令访问? –

+0

@ pc-shooter如果我需要依赖OS命令,我宁愿重新设计我的应用程序的那部分。不过,我希望有一个更简单的解决方案。 – Matthew

回答

4

理想情况下,你会只是使目录访问,但如果那是绝对不可能的,那么你可以这样做:

myimage.php

$file = 'privatedir/image.jpg'; 
$type = 'image/jpeg'; 
header('Content-Type:'.$type); 
header('Content-Length: ' . filesize($file)); 
readfile($file); 
exit(); 

然后用myimage.php作为img标签的src 。

+0

OP可能需要显示多个图像。在这种情况下,将文件名作为查询字符串参数传递给PHP脚本会很好(请务必首先彻底清除它)。 – DCoder

+0

如果我使用这种方法显示图像,会损失性能吗?也许我应该考虑缓存readfile的输出。 – Matthew

+0

@Matthew:是的,你会失去表现。但你已经要求它使用PHP,所以你失去了性能是在你要求它使用PHP。 – hakre