我有一個.png,我想在特定頁面上嵌入。這個.png位於Web根目錄之外,但我們的系統中有一個模塊,允許用戶在單獨的頁面上查看該圖像。我發現我可以使用iframe在某些瀏覽器上查看.png,但有時會出現授權問題,或者嘗試打印頁面時圖像無法通過iframe加載。我嘗試了PHP的readfile(),但後來我又遇到了另一個授權問題。我發現授權問題很奇怪,因爲必須登錄才能使用我們的網站。什麼是嵌入此圖像的最佳方式?如何查看web根目錄以外的圖像?
<?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讀取圖像文件時遇到了什麼問題?您可能需要向圖像文件上的所有人授予讀取權限才能使其工作。 – mti2935
我得到這個錯誤:Warning:readfile(http://www.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 –