Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Serving images from outside of document root

Is it possible?

Let's say my directory structure looks like this:

/data
    /data/images
/public

The document root is in the "public" directory. This won't work, of course:

<img src="/../data/images/1.png" alt="" />

But maybe it's possible to enable serving images from directory above document root somehow? I would like to know.

like image 562
Richard Knop Avatar asked Jun 28 '10 10:06

Richard Knop


2 Answers

The most common way is an Alias:

Alias /data/ /wherever/your/data/are/
like image 85
unbeli Avatar answered Nov 11 '22 05:11

unbeli


Another way (say if you can't set an alias...) would be to use a script as the image source eg:

<img src="image.php?img=myImage.jpg" />

image.php would be similar to:

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

Of course you'd need to extend the script to filter $_GET['img'], as well as detect and set the right content type. Your script could even resize the image according to other parameters passed in the query string.

like image 33
tweetlogist Avatar answered Nov 11 '22 05:11

tweetlogist