2

次のコードで .htaccess ファイルを使用しています。

Order deny, allow
Deny from all
Allow from localhost

しかし、画像を表示するときに、画像へのリンクをタグに入れるだけですが、画像が表示されません。

画像を表示して直接アクセスできないようにするにはどうすればよいですか? ファイルの生のバイトをコピーして表示する方法はありますか?

4

2 に答える 2

8

このソース例と同じフォルダにembedded.pngを必ず保存してください。

<?php
function data_uri($file, $mime) 
{  
  $contents = file_get_contents($file);
  $base64   = base64_encode($contents); 
  return ('data:' . $mime . ';base64,' . $base64);
}
?>

<html>
    <h1>Embedded Image:-</h1>
    <img src="<?php echo data_uri('embedded.png','image/png'); ?>" alt="Embedded image" />
</html>
于 2013-08-30T03:43:23.930 に答える
0

Content-Type画像の適切なヘッダーを送信してから、 を使用readfile()してバイトをストリーミングして出力します。

また、これに URL でファイルパスを使用する場合は、最初にファイルパスをサニタイズして、たとえば/etc/passwdスクリプトを使用して読み取れないようにしてください。

于 2013-08-30T03:39:48.143 に答える