Access a file which is located before / outside the server root directory?

You cannot directly access any file outside your web directory. As your question includes the tag PHP as well, I assume you may want to use it.

What you can do is the following:

Inside your www directory, create a “image.php” file, with a similar content to:

<?php
  header('Content-Type: image/png');
  readfile("../img/" . $_GET['img']);
?>

And call your images with

<img src="https://stackoverflow.com/questions/13357994/image.php?img=myimage.png" />

Please be aware that your PHP file shouldn’t be that simple 🙂 As you may want to address multiple image formats (and providing the correct header for them), checking for malicious file path/inclusions (you don’t want to use $_GET without validating/sanitizing the input), extra caching etc. etc. etc.

But this should give you an idea on how you can target your issue.

Leave a Comment