2010-06-28 7 views
8

È possibile?Fornitura di immagini dall'esterno della radice del documento

Diciamo che la mia struttura di directory simile a questo:

/data 
    /data/images 
/public 

Il documento radice si trova nella directory "public". Naturalmente, questo non funzionerà:

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

Ma forse è possibile abilitare le immagini di servizio dalla directory sopra la radice del documento in qualche modo? Mi piacerebbe sapere.

+3

Bene, ci sono diversi modi, come 'symlink'. Ma sarebbe impossibile dare la risposta giusta prima di dircelo, qual è lo scopo di archiviare le immagini al di fuori della radice del documento –

+0

Puoi usare .htaccess per riscrivere qualsiasi richiesta in arrivo a un'immagine per passare attraverso uno script di pubblicazione di immagini, ma poi ancora, perché vorresti fare una cosa del genere? Non è così proteggere le tue immagini da qualsiasi cosa. Una volta visualizzato nel browser, è sul client. – Gordon

risposta

12

Il modo più comune è un Alias:

Alias /data/ /wherever/your/data/are/ 
+1

+1 questo deve essere inserito in 'httpd.conf' stesso, sebbene non funzioni in un file' .htaccess'. –

+1

+1, ho usato questo metodo per provare a mantenere il maggior numero di documenti fuori dal public_html per sicurezza. – RobertPitt

+1

@Robert umm, in che modo aggiungerebbe sicurezza? – Gordon

4

Un altro modo (ad esempio, se non è possibile impostare un alias ...) sarebbe quella di utilizzare uno script come ad esempio fonte immagine:

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

image.php sarebbe simile a:

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

Naturalmente avrete bisogno di estendere lo script per filtrare $ _GET ['img'], oltre a rilevare e impostare il giusto tipo di contenuto. Lo script potrebbe anche ridimensionare l'immagine in base ad altri parametri passati nella stringa di query.

Problemi correlati