【问题标题】:Display images from private directory [duplicate]显示来自私有目录的图像[重复]
【发布时间】:2014-04-27 16:40:59
【问题描述】:

我有一些图像存储在一个无法通过 URL 访问的目录中(该目录不是公开的)。

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

【问题讨论】:

  • 为什么投反对票?如果我错过了什么,我可以更改问题,只需要告诉我...
  • 可以使用execcommand 访问目录吗?
  • @pc-shooter 如果我需要依赖操作系统命令,我宁愿重新设计我的应用程序的那一部分。不过我希望有一个更简单的解决方案。
  • 我也有类似的要求。不知道这是否能解决您的问题,但在我的 .htaccess 中,我保存了 deny from all 并为 PHP 执行此操作。 Code Link

标签: php .htaccess


【解决方案1】:

理想情况下,您只需使该目录可访问,但如果这绝对不可能,那么您可以这样做:

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。

【讨论】:

  • OP 可能需要显示多个图像。在这种情况下,将文件名作为查询字符串参数传递给 PHP 脚本会很好(请务必先彻底清理它)。
  • 如果我使用这种方法显示图像,性能会下降吗?也许我应该考虑缓存 readfile 的输出。
  • @Matthew:是的,你会失去性能。但是您已经要求它与 PHP 相关,因此您失去性能就在您要求它与 PHP 相关。
  • 如果性能是一个问题并且您不需要添加额外的访问条件(例如作为登录用户),您绝对会降低性能,使图像可访问或将它们移动到可访问的地方查看文件。
猜你喜欢
  • 2015-10-06
  • 1970-01-01
  • 2012-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-04
  • 2021-10-05
  • 2016-01-28
相关资源
最近更新 更多