Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

I'm making an intranet for a post-sale customer service entreprise. Employee need to be able to upload img files to the intranet's server and i need to store them in a directory with is BEFORE www (the website's root directory).

Doing this using php is pretty easy but how to include these imgs on the website once they're uploaded ? I tried this code

<img src="../img/img.png"/>

This is not working because i can't send a file if it is OUTSIDE the server's www directory ...

Is there any proper way to do that ?

Current treeview :

server root directory
           |www
               |(all server files)
           |img
               |(all img files)

(the server's index.php is located in www and the files are in img)

like image 446
Weacked Avatar asked Nov 13 '12 09:11

Weacked


1 Answers

You can't directly access file outside/above your root directory (www or public_html).

You can create virtual directory in Apache server configuration. Google "apache virtual directory" for more information.

Virtual directory configuration example:

<IfModule alias_module>
  Alias /uploaded_images/ "/home/someuser/somewhere"
  <Directory "/home/someuser/somewhere">
    Allow from all
  </Directory>
</IfModule>

uploaded_images directory will be available from web like normal directory in www directory. You can copy files from there to another location (kind of buffering).

You can also open/copy that file by ftp from php level without changing anything in apache, but this may be really slow (use it only if you can't control apache config, virtual directory is much better).

php.net: FTP

like image 66
Kamil Avatar answered Sep 27 '22 00:09

Kamil