2012-12-19 13 views
11

मेरे पास image नामक फ़ाइल फ़ील्ड वाला एक फॉर्म है, लेकिन इस फ़ील्ड की आवश्यकता नहीं है।
जब उपयोगकर्ता फॉर्म में कोई भी फ़ाइल नहीं चुनता है, तो do_upload() हमेशा एक त्रुटि लौटाता है।
मैं कैसे नियंत्रित कर सकता हूं कि उपयोगकर्ता ने मेरे नियंत्रक में अपलोड कार्रवाई करने से पहले फ़ाइल चुनी है या नहीं? यदि फ़ाइल फ़ील्ड रिक्त है या नहींकोडनिर्देशक में फ़ाइल फ़ील्ड खाली होने पर कैसे जांचें?

if (! empty($_FILES)) {...} 


if(!empty($_FILES['myFileField'])) { 
    // file field is not empty.. 
} else { 
    // no file uploaded.. 
} 
+0

बस 'required' नियम निकालने के लिए यदि आप सत्यापन नियमों –

+0

में यह घोषित मेरे पास नहीं है है इस क्षेत्र के लिए सत्यापन की आवश्यकता। – squiter

+0

तब जब आपको फॉर्म में कोई फ़ाइल नहीं चुनती है तो आपको कोई त्रुटि नहीं मिलनी चाहिए .. वास्तव में त्रुटि क्या है? –

उत्तर

32

का उपयोग करें खाली()

if (empty($_FILES['userfile']['name'])) { 
} 
+0

मैं कोडनिर्देशक नियंत्रकों से $ _FILE तक नहीं पहुंच सकता। – squiter

+8

यह $ _FILES $ _FILE –

+0

है यह $ _FILES (बहुवचन) है, और क्यों नहीं? आपका फॉर्म नियंत्रक में किसी फ़ंक्शन पर सबमिट किया गया है जिसका अर्थ है कि सभी super_globals (यानी $ _POST और $ _FILES) फ़ंक्शन – Matanya

0

उपयोग empty() खाली समारोह की जाँच करता है।

if(is_uploaded_file($_FILES['userfile']['tmp_name'])) 
{ 
    do_upload(); 
} 
+0

जहां मैं खाली() का उपयोग करता हूं? मैं फ़ील्ड के लिए $ _FILE या $ this-> इनपुट तक नहीं पहुंच सकता। – squiter

+0

अद्यतन उत्तर – Ghostman

+0

के लिए जांचें मैं कोडिनेटर नियंत्रकों में $ _FILE तक नहीं पहुंच सकता। – squiter

1

अगर फाइल is_uploaded_file() का उपयोग कर मान्य है की जाँच करने के प्रयास

+0

मैं कोडनिर्देशक नियंत्रकों से $ _FILE तक नहीं पहुंच सकता। – squiter

4

अपने नियंत्रक में, समारोह है कि सबमिट किए गए फ़ॉर्म को प्राप्त करता है पर: उदाहरण के लिए:

if (isset($_FILES['image']['name']) && !empty($_FILES['image']['name'])) { 
    // do_upload 

} 
+2

'जारीकर्ता' अनावश्यक है। [डॉक्स] से (http://php.net/manual/en/function.empty.php): 'खाली() अनिवार्य रूप से संक्षिप्त है! जारीकर्ता ($ var) || $ var == false' –

0

फ़ाइल अपलोड करने में त्रुटि के रूप में "नहीं फ़ाइल चयनित "संख्या 4 है, ऐसा करने का सही तरीका यह है:

if ($_FILES['my_image_field_name']['error'] !== 4){ 
    if ($this->upload->do_upload('my_image_field_name')) { ... 

नाम या tmp_name से जांच करते समय, अन्य कारण हो सकते हैं कि इन क्षेत्रों को जनसंख्या क्यों नहीं मिली, और आप इन्हें याद कर सकते हैं।

1

यहाँ अगर फाइल मैदान खाली या php

<!DOCTYPE html> 
<html> 
<body> 

<form action="#" method="post" enctype="multipart/form-data"> 
    Select image to upload: 
    <input name="my_files[]" type="file" multiple="multiple" /> 
    <input type="submit" value="Upload Image" name="submit"> 
</form> 


<?php 

if (isset($_FILES['my_files'])) 
    { 
    $myFile = $_FILES['my_files']; 
    $fileCount = count($myFile["name"]); 


     for ($i = 0; $i <$fileCount; $i++) 
     { 
      $error = $myFile["error"][$i]; 

      if ($error == '4') // error 4 is for "no file selected" 
      { 
       echo "no file selected"; 
      } 
      else 
      { 

       $name = $myFile["name"][$i]; 
       echo $name; 
       echo "<br>"; 
       $temporary_file = $myFile["tmp_name"][$i]; 
       echo $temporary_file; 
       echo "<br>"; 
       $type = $myFile["type"][$i]; 
       echo $type; 
       echo "<br>"; 
       $size = $myFile["size"][$i]; 
       echo $size; 
       echo "<br>"; 



       $target_path = "uploads/$name"; //first make a folder named "uploads" where you will upload files 


       if(move_uploaded_file($temporary_file,$target_path)) 
        { 
        echo " uploaded"; 
        echo "<br>"; 
        echo "<br>"; 
        } 
        else 
        { 
        echo "no upload "; 
        } 




       } 
     } 
} 
     ?> 


</body> 
</html> 

में नहीं है की जाँच करने के लेकिन सावधान रहना पूर्ण स्क्रिप्ट है। उपयोगकर्ता किसी भी प्रकार की फ़ाइल अपलोड कर सकता है और दुर्भावनापूर्ण या php फ़ाइल अपलोड करके आपके सर्वर या सिस्टम को भी हैक कर सकता है। इस लिपि में कुछ सत्यापन होना चाहिए।

उल्लेख http://www.techzigzag.com/how-to-check-that-user-has-upload-any-file-or-not-in-php/

आशा है कि यह आप में मदद मिलेगी।

1

फ़ाइल अपलोड की जांच करने के लिए बस मूल PHP कोड का उपयोग करें।

if(!file_exists($_FILES['myfile']['tmp_name']) || !is_uploaded_file($_FILES['myfile']['tmp_name'])) { 
echo 'No upload'; 
} 
0
if(!empty($_FILES[$file_name]['name'])){ 
    // TODO your logic 

}else{ 
    echo "empty"; 
} 
संबंधित मुद्दे