मैं में Drupal/साइटों/डिफ़ॉल्ट/फ़ाइलें/images/कुछ छवियों की है।ड्रोपल में एक छवि के लिए पूर्ण पथ कैसे प्राप्त करें?
मैं इस निर्देशिका में रखा abc.jpg की तरह एक छवि के लिए निरपेक्ष पथ कैसे मिल सकता है?
मैं में Drupal/साइटों/डिफ़ॉल्ट/फ़ाइलें/images/कुछ छवियों की है।ड्रोपल में एक छवि के लिए पूर्ण पथ कैसे प्राप्त करें?
मैं इस निर्देशिका में रखा abc.jpg की तरह एक छवि के लिए निरपेक्ष पथ कैसे मिल सकता है?
यदि ड्रूपल अपने डोमेन पर है (यानी http://example.com
), तो पूर्ण पथ /sites/default/files/images/abc.jpg
होगा।
यदि ड्रूपल उपफोल्डर में है (उदा। http://example.com/drupal
), पूर्ण पथ /drupal/sites/default/files/images/abc.jpg
होगा।
के रूप में मैं एक ही सवाल पर मेरा उत्तर में बताया गया है कि आप नष्ट कर दिया, यदि आप प्रोग्राम पथ (अर्थात, आप नहीं जानते कि जहां फ़ाइल निर्देशिका है), तो आप file_directory_path()
उपयोग करने की आवश्यकता उत्पन्न करने के लिए कोशिश कर रहे हैं:
$image = file_directory_path() . "/images/abc.jpg";
तो अगर फाइलों में हैं:
$image = "sites/default/files/images/abc.jpg"
।$image = "sites/example.com/files/images/abc.jpg"
।यूज-केस अपने पिछले प्रश्न मान लिया जाये कि अभी भी है, तो आप क्रमश: l()
और theme_image()
का उपयोग कर लिंक और छवियों उत्पन्न करने के लिए, अपने मॉड्यूल के भीतर होना चाहिए। इससे यह सुनिश्चित होगा कि उत्पन्न हुए मार्ग ड्रूपल के पर्यावरण को सही हैं।
अपेक्षित आउटपुट आप से पहले प्रदान का उपयोग करना, एक समाधान होगा:
// Images are in drupalroot/sites/default/files/images
$path = file_directory_path() . '/images/';
$detail_file = 'detail_1.jpg';
$image_file = '1.jpg';
$img = theme('image', $path . $image_file);
$options = array(
'attributes' => array(
'title' => t('Sample title for image 1 lorem ipsum'),
),
'html' => TRUE,
);
$output = l($img, $path . $detail_file, $options);
तो, अपनी साइट संभालने http://example.com/
पर है, उत्पादन होगा:
<a href="/sites/default/files/images/default_1.jpg" title="Sample title for image 1 lorem ipsum">
<img src="/sites/default/files/images/1.jpg" height="<image height>" width="<image width>" />
</a>
लेकिन अगर आपकी साइट था एक उपफोल्डर में (उदाहरण के लिए http://example.com/drupal
), आउटपुट होगा:
<a href="/drupal/sites/default/files/images/default_1.jpg" title="Sample title for image 1 lorem ipsum">
<img src="/drupal/sites/default/files/images/1.jpg" height="<image height>" width="<image width>" />
</a>
मैंने मार्क के समाधान की कोशिश की और पाया कि मेरी निर्देशिका "/sites/default/files/images/a.jpg"
लेकिन जब मैं इसे अपने नोड्स में img src के रूप में लिखता हूं, तो यह संबंधित छवियां नहीं दिखाता । इसके अलावा जब मैं ने लिखा "../sites/default/files/images/a.jpg" यह :)
काम किया क्योंकि पहले मामले में, Drupal "सामग्री/साइटों में फ़ाइल खोजने के लिए करने की कोशिश की/डिफ़ॉल्ट /files/images/a.jpg http://www.mywebsite.com/sites/default/files/images/ "
बस का उपयोग
$url_image = url('sites/default/files/'.file_uri_target($uri), array('absolute'=>true));
उस मामले में आप की तरह एक पथ होगा" image.jpeg "
$ uri एक inte है राहेल पथ, जैसे "सार्वजनिक: // छवियां/छवि।jpeg "
यह Drupal 7, यह आनंद है, पसंद करें
public://
आप सार्वजनिक फ़ोल्डर
उदाहरण के निरपेक्ष पथ दे देंगे:
drupal/sites/default/files/images/
सिर्फ
डाल का उपयोग करने कीpublic://images/
ड्रूपल 7
के लिए$relativePath = "blabla/abc.jpg";
$uri = file_build_uri($relativePath);
//show public://blabla/abc.jpg
echo $uri;
$url = file_create_url($uri);
//show http://www.yoursite.com/sites/default/files/blabla/abc.jpg
echo $url;
file_directory_path ड्रूपल 7 में हटा दिया गया है। यदि आप इसका उपयोग करते हैं, तो आपको एक त्रुटि 'अपरिभाषित फ़ंक्शन पर कॉल' मिलेगी। Drupal_real_path या प्रयोग करने का प्रयास करें। आप यहां बहिष्कृत समारोह के बारे में पा सकते हैं। http://api.drupal.org/api/drupal/includes!file.inc/function/file_directory_path/6