यदि (मानवरहित) फ़ाइल मौजूद है, तो कैसे जांचें?


18

मुझे D7 में एक Drupal API फ़ंक्शन नहीं मिल रहा है जो बताता है कि क्या एक (अप्रबंधित) फ़ाइल मौजूद है। D6 में 7 के लिए एक file_check_location था लेकिन नहीं।

यदि (मानवरहित) फ़ाइल मौजूद है, तो कैसे जांचें?

जवाबों:


35

file_exists()अगर मैं आपको सही समझता हूं तो आप पुराने bog मानक PHP फ़ंक्शन का उपयोग कर सकते हैं :

$uri = 'public://images/an-image.jpg';
if (file_exists($uri)) {
  // Do something
}

यह सामान्य (निरपेक्ष) रास्तों के लिए भी काम करता है, जैसे:

$path = '/var/www/drupal/sites/default/files/images/an-image.jpg';
if (file_exists($path)) {
  // Do something
}

बचाव के लिए फिर से, धन्यवाद! क्या मैं आपको नौकरी दे सकता हूं? ;-)
युव

6
@MotoTribe निर्भर करता है कि आप ज्यादा कर रहे हैं की पेशकश;)
क्लाइव

यह काम क्यों करता है? मैंने इसे सादे PHP और एक स्ट्रीम हैंडल के साथ परीक्षण किया है file_exists()और यह काम नहीं करता है। कोई स्पष्टीकरण?
केसर

क्योंकि Drupal @kaiser द्वारा धाराओं को ठीक से पंजीकृत किया गया है। देखें php.net/manual/en/wrappers.php
क्लाइव

@ क्लिक करें मुझे आशा है कि आप मुझे Drupal के स्रोत की ओर संकेत कर सकते हैं। बाकी मैं जानता हूं और सादे PHP परीक्षण में काम नहीं कर सकता, इसलिए मैंने पूछा। संपादित करें: nvm, उन्हें मिला
kaiser

3

मुझे नहीं पता कि आपका विशिष्ट उपयोग मामला क्या है, लेकिन आपको यह देखने के लिए जांचने की आवश्यकता नहीं है कि क्या फ़ाइल मौजूद है।

फ़ंक्शंस file_unmanaged_copy, file_unmanaged_move, file_unmanaged_delete, file_unmanaged_delete_recursive, और file_unmanaged_save_data देखने के लिए जाँचें कि क्या फ़ाइल मौजूद है और गलत नहीं है तो वापस लौटें।

आप ड्रुपल / सोर्स / file.inc में सोर्स कोड पा सकते हैं और एक नज़र रख सकते हैं।


3

आपको ड्रुपल फ़ंक्शन का उपयोग करना चाहिए:

file_destination ($ uri, FILE_EXISTS_ERROR)

और जाँच करें

if (!file_destination($uri, FILE_EXISTS_ERROR)) {
  // The file exist
  // Do something
} 

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