Drupal 7 डिफ़ॉल्ट फ़ाइल अपलोड निर्देशिका कैसे प्राप्त करें?


21

मुझे ड्रुपल से अपलोड डायरेक्टरो प्राप्त करने के लिए परेशानी है। क्या कोई फ़ंक्शन रिश्तेदार या निरपेक्ष पथ पर लौट रहा है?


1
किसी भी फ़ोल्डर के टकराव से बचने के लिए रैपर ( public://, private://आदि) का उपयोग करने पर विचार करें । Drupal 7 :) का लाभ उठाएं)
AyeshK

मुझे पता है कि यह image_style_url (uri) के साथ काम करता है, लेकिन मैं इसे
फ़्यूचर

जवाबों:


24

यह जानकारी Drupal के वैरिएबल टेबल में सेव है। variable_getइस जानकारी को प्राप्त करने के लिए फ़ंक्शन का उपयोग करें , सही चर के नाम से गुजर रहा है:

  • सार्वजनिक फाइलसिस्टम स्थान :variable_get('file_public_path', conf_path() . '/files');
  • निजी फाइलसिस्टम स्थान :variable_get('file_private_path');

यदि आप अस्थायी अपलोड निर्देशिका का उपयोग variable_get('file_temporary_path');करना चाहते हैं यदि आप सिस्टम विशिष्ट अपलोड निर्देशिका का निर्धारण करना चाहते हैं, तो वास्तविक साइट कॉन्फ़िगरेशन file_directory_tempफ़ंक्शन का उपयोग किए बिना ।

variable_get('file_public_path', conf_path() . '/files'); साइट व्यवस्थापक द्वारा संशोधित या स्पष्ट रूप से सेट नहीं किए जाने की स्थिति में आपके लिए डिफ़ॉल्ट पथ को खींच देगा।


hmm in my case variable_get ('file_public_path') खाली है ... क्या मुझे इसे हुक के भीतर कॉल करना है या नहीं?
जुराडॉक्स

1
@Jurudocs इसके बजाय इसका उपयोग करें: variable_get('file_public_path', conf_path() . '/files');मूल रूप से, यह साइट व्यवस्थापक द्वारा संशोधित या स्पष्ट रूप से सेट नहीं किए जाने पर आपके लिए डिफ़ॉल्ट पथ को खींचता है।
9ee1

@zhilevan उस निर्देशिका पर अपनी फ़ाइल अनुमतियाँ जांचें।
एटमॉक्स

यह केवल सापेक्ष पथ देता है जो पूर्ण पथ की तुलना में कम उपयोगी लगता है। मुझे drupal_realpathनीचे का समाधान पसंद है । अधिक वैध लगता है।
एलेक्स फिननार

11

इसके बजाय पूर्ण फ़ाइल सिस्टम पथ का उपयोग करने के लिए drupal_realpath (Drupal API)file_create_url :

drupal_realpath('public://'); 
// returns e.g. /var/www/drupal/sites/default/files

drupal_realpath('private://');
// returns e.g. /var/www/drupal/sites/default/files_private

3

आप इन फ़ंक्शंस का उपयोग रिश्तेदार uri से मान्य url प्राप्त करने के लिए भी कर सकते हैं:

file_create_url('public://');
file_create_url('private://');

वे सार्वजनिक या निजी फ़ोल्डरों के लिए पथ वापस करते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.