【发布时间】:2013-07-19 00:11:07
【问题描述】:
我有一个要嵌入到特定页面的 .png。这个 .png 位于 web 根目录之外,但我们的系统中有一个模块,允许用户在单独的页面上查看该图像。我发现我可以使用 iframe 在某些浏览器上查看 .png,但有时会出现授权问题,或者在尝试打印页面时图像无法通过 iframe 加载。我尝试了 PHP 的 readfile(),但后来我遇到了另一个授权问题。我发现授权问题很奇怪,因为必须登录才能使用我们的网站。嵌入此图像的最佳方式是什么?
<?php foreach($activity->getMedias() as $media_count => $media):
<iframe id="content" src="http://www.mysite.com/media/view/id/<?php echo $media->getId(); ?>" frameborder="0" style="width: 100%; height:825px;" seamless="seamless">
<p>Your browser does not support iframes. Please upgrade to <a href="http://getfirefox.com">a modern browser</a>.</p>
</iframe>
已解决 这是我用来让它工作的代码。我正在使用 Symfony 1.4。
<?php foreach($activity->getMedias() as $media_count => $media):
$dataString=sfConfig::get('sf_root_dir').'/media/'.$media->getLocation(); ?>
<img SRC="data:image/png;base64,<?php echo base64_encode(file_get_contents("../../../../../..".$dataString));?>">
【问题讨论】:
-
如果图像文件存储在 webroot 之外,那么您使用 readfile 的想法就是访问它的方法。您在尝试使用 readfile 读取图像文件时遇到了哪些问题?您可能需要授予所有图像文件的读取权限才能使其正常工作。
-
我收到此错误:警告:readfile(mysite.com/media/view/id/26154):打开流失败:HTTP 请求失败! HTTP/1.0 401 未经授权在 /home/user/v2/symfony/apps/front/modules/shot_report/templates/_activity_shot_report_129414_1374251034_3898.php 第 396 行
标签: php html iframe authorization