2012-11-08 9 views
6

में अपलोड करने के लिए चुना गया है हाय मुझे अपलोड फ़ाइल भाग के बारे में कुछ परेशानी हो रही है। खैर मूल रूप से मेरे पास अपलोड लोगो भाग के साथ एक फॉर्म है जिसमें कोई उपयोगकर्ता लोगो का चयन नहीं करता है, फिर भी वह एक ही समय में अपनी प्रोफ़ाइल अपडेट कर सकता है, उपयोगकर्ता भी लोगो अपलोड करना चुन सकता है लेकिन इसमें कुछ सीमाएं हैं। अब मुझे नहीं पता कि मैं उस हिस्से को कैसे सत्यापित कर सकता हूं यह जानने के लिए कि क्या वह एक छवि चुनता है या नहीं। सीआई नियंत्रक में अब तक मेरा कोड है:मान्य करें अगर फ़ाइल को कोडिनेटर

if (//CHECK IF THERE IS A FILE FOR UPLOAD){ 
       $new_name = $data['id']; 

       $config['upload_path'] = './Logos/'; 
       $config['allowed_types'] = 'jpg|png|gif'; 
       $config['max_size'] = '100'; 
       $config['max_width'] = '100'; 
       $config['max_height'] = '100'; 

       $this->load->library('upload', $config); 

        if (! $this->upload->do_upload()) 
        { 
         array_push($data['error_message'], "You have the following errors in your entry:\n"); 
         array_push($data['error_message'], "- Logo must be 100x100 pixels in size not exceeding 100KB with JPG,PNG or GIF format"); 
         array_push($data['error_message'], "\nLogo upload failed."); 
         $data['check_error'] = true; 
        } 
        else 
        { 
         $data = array('upload_data' => $this->upload->data()); 

         //DO UPDATE PART HERE 
         $file = $data['upload_data']['file_name']; 
         rename($config['upload_path'] . $file, $config['upload_path'] .$new_name.'.jpg'); 
         //GO TO SETTINGS 
         $this->load->helper('url'); 
         redirect($data['base'].'settings'); 
        } 
       } 

यदि मैं एक सत्यापन निर्धारित करना चाहता हूं तो वह हिस्सा है। मैंने कुछ चाल की कोशिश की लेकिन वे सभी ठीक से काम नहीं करते हैं।

यहाँ मेरे विचार हिस्सा है जहां अगर कुछ आईडी लोगो को पहले से ही यह सिर्फ उसकी/उसके लोगो प्रदर्शित है मौजूद है या फिर डिफ़ॉल्ट लोगो प्रदर्शित करता है:

<tr> 
    <td><p class="titles">Logo</p></td> 
    <td> 
    <div> 
     <input type="text" id="fileName" class="file_input_textbox" readonly="readonly"> 

     <div class="file_input_div"> 
      <input type="button" value="Browse" class="file_input_button" /> 
      <input type="file" class="file_input_hidden" onchange="javascript: document.getElementById('fileName').value = this.value" id="upload" name="userfile" /> 
     </div> 
    </div> 
    </td> 
</tr> 

<tr> 
<td> 
</td> 
<td> 
<p class="titles">100px x 100px jpg, png or gif only.</p> 
</td> 
</tr> 

<tr> 
<td><p class="titles">Current Logo</p></td> 
<td> 
    <img src="<?php if(is_array(@getimagesize($base."Logos/".$id.".jpg"))){echo $base."Logos/".$id.".jpg";}else{echo $base."Logos/default.jpg";} ?>" style="margin:0px 0px 0px 90px;"/> 
</td> 
</tr> 

उत्तर

13

यदि फ़ाइल है मैं आमतौर पर देशी पीएचपी पाने की जाँच करने के काम करने के लिए सीआई के अपलोड वर्ग से पहले अपलोड किया जा रहा:

if (isset($_FILES['upload_field_name']) && is_uploaded_file($_FILES['upload_field_name']['tmp_name'])) { 
    //load upload class with the config, etc... 
    $this->load->library('upload', $config); 
} 
+0

मैं पहले से ही ($ _ फ़ाइलें [ 'upload_field_name']) isset की कोशिश की लेकिन नहीं बाद में। यह कोशिश करेंगे और आप पर वापस आ जाएगा। धन्यवाद! :) – KaHeL