2010-06-28 8 views
8

क्या यह संभव है?दस्तावेज़ रूट के बाहर से छवियों की सेवा

मान लीजिए कि मेरी निर्देशिका संरचना इस तरह दिखता है:

/data 
    /data/images 
/public 

दस्तावेज़ जड़ "सार्वजनिक" निर्देशिका में है। यह काम नहीं करेगा, बेशक:

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

लेकिन संभवतः दस्तावेज़ रूट के ऊपर निर्देशिका से छवियों की सेवा करने में सक्षम होना संभव है? मैं जानना चाहता हूँ।

Alias /data/ /wherever/your/data/are/ 
+3

ठीक है, 'symlink' जैसे कई तरीके हैं। लेकिन हमें बताए जाने से पहले सही जवाब देना असंभव होगा, दस्तावेज़ रूट –

+0

के बाहर छवियों को संग्रहीत करने का उद्देश्य क्या है। आप किसी छवि को सेवा स्क्रिप्ट के माध्यम से पास करने के लिए किसी भी आने वाले अनुरोधों को फिर से लिखने के लिए .htaccess का उपयोग कर सकते हैं, लेकिन फिर फिर, आप ऐसा क्यों करना चाहते हैं? ऐसा नहीं है कि यह आपकी छवियों को किसी भी चीज़ से सुरक्षित रखेगा। एक बार यह ब्राउज़र में दिखाता है, यह ग्राहक पर है। – Gordon

उत्तर

12

सबसे आम तरीका एक Alias है

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

image.php होगा समान करने के लिए:

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

आप $ फिल्टर करने के लिए स्क्रिप्ट का विस्तार करना होगा _GET ['img'], साथ ही सही सामग्री प्रकार का पता लगाने और सेट करने के लिए। आपकी स्ट्रिप क्वेरी स्ट्रिंग में पारित अन्य पैरामीटर के अनुसार छवि का आकार बदल सकती है।

+1

+1 इसे 'httpd.conf' में ही रखा जाना चाहिए, हालांकि, यह '.htaccess' फ़ाइल में काम नहीं करेगा। –

+1

+1, मैंने सुरक्षा के लिए public_html से कई दस्तावेज़ों को आजमाने और रखने के लिए इस विधि का उपयोग किया। – RobertPitt

+1

@Robert umm, यह कोई सुरक्षा कैसे जोड़ देगा? – Gordon

4

एक और तरीका है (जैसे कि आप किसी अन्य नाम सेट नहीं कर सकते ...) छवि स्रोत जैसे के रूप में एक स्क्रिप्ट का उपयोग करने के लिए किया जाएगा:

संबंधित मुद्दे