खोज…


टिप्पणियों

यह आवश्यक नहीं है कि आपको (नियंत्रक, फ़ाइल, कक्षा, आईडी) या जो कुछ भी हो, उसी नामों का उपयोग करना होगा। सभी चीजें जो मैंने उपयोग की हैं, कोडिंग प्रवाह और मेरी मान्यताओं के समझ के उद्देश्य के लिए है। यह डेवलपर पर निर्भर है जो कोड लेता है और अपनी इच्छा के अनुसार कोड / नाम को संपादित करता है और फिर कोड को होस्ट करता है और सफल होता है।

सिंगल फाइल / इमेज अपलोडर

अब हम देखेंगे कि कैसे CI द्वारा प्रस्तावित किए गए प्रपत्रों की मदद से मूल CI विधि में छवि / फ़ाइल अपलोडिंग कोड काम करता है।

PHP में फ़ाइल अपलोड करने के दो परिदृश्य हैं। इसका उल्लेख नीचे दिया गया है।

  • सिंगल इमेज / फाइल अपलोडर - इसे फॉर्म की विशेषता में सामान्य चर की मदद से बचाया जा सकता है। (उदा) <input type="file" name="image" />
  • मल्टी-इमेज / फाइल अपलोडर - यह केवल फ़ाइल प्रकार में नाम के लिए सरणी चर की मदद से बचाया जा सकता है। (उदाहरण) <input type="file" name="image[]" />

name="profile[]" चर name="profile[]" को single image अपलोडर के साथ-साथ multi-image अपलोडर के लिए भी रखा जा सकता है।

इसलिए मूल कोडनिगर प्रारूप में सिंगल इमेज / फाइल अपलोडर कोड इस प्रकार है:

भाग देखें:

<?php
echo form_open_multipart('employee/addemployee', array('name' => 'addemployee', 'class'=>'form-horizontal'));
?>
<div class="form-group">
   <label class="control-label col-sm-4" for="pwd">Profile:</label>
   <div class="col-sm-8">
      <input type="file" class="" id="profile" name="userimage">
   </div>
</div>
<div class="form-group">
   <div class="col-sm-offset-2 col-sm-10">
        <input type="submit" class="btn btn-primary pull-right" name="save" value="Save Employee" /> 
   </div>
</div>
<?php
echo form_close();
?>

इसलिए यदि हम फॉर्म जमा करते हैं तो यह जा रहा है

  • Employee - कंट्रोलर और addemployee नाम के फंक्शन को addemployee
  • यदि आपको फ़ाइल अपलोडर कोड के लिए आवश्यक विशेषता चाहिए तो आप इनपुट टैग के लिए required HTML5 विशेषता जोड़ सकते हैं।

नीचे आवश्यक विशेषता का उपयोग करने के दो उदाहरण दिए गए हैं, लेकिन दोनों विधियां समान हैं।

  1. विधि एक: <input type="file" name="photo" required="required" />
  2. विधि दो: <input type="file" name="photo" required />

इसलिए ये कुछ महत्वपूर्ण टिप्स हैं जिनका पालन छवि / फ़ाइल अपलोडर के दृश्य भाग में किया जाना है।

नियंत्रक भाग:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Employee extends CI_Controller {

    function __construct() {
    parent::__construct();
    $this->load->model('employee_model');
    $this->load->helper('url'); //This will load up all the URL parameters from the helper class
    $this->load->helper('form'); //This will load up all the form attributes that are need by the form.
    }

    public function addemployee()
    {
        if($_FILES["userimage"]['name']=='')            
        {
            // Here you can directly redirect to the form page itself with the Error Message
        }
        else
        {
            $new_name = time().$_FILES["userimage"]['name']; //This line will be generating random name for images that are uploaded       
            $config['upload_path'] = FCPATH ."assets/fileupload/";
            $config['allowed_types'] = 'gif|jpg|png';
            $config['file_name'] = $new_name;
            $this->load->library('upload', $config); //Loads the Uploader Library
            $this->upload->initialize($config);        
            if ( ! $this->upload->do_upload('userimage'))  {}
            else
            { 
            $data = $this->upload->data(); //This will upload the `image/file` using native image upload 
            }
            $data_value = array(
            'profile'=>$new_name,
            ); //Passing data to model as the array() parameter    
            $this->employee_model->saveemployee($data_value); //save_employee is the function name in the Model            
        }    
    }
?>

नोट: डिफ़ॉल्ट रूप से अपलोड रूटीन से यह अपेक्षा होती है कि फाइल userfile नामक फ़ॉर्म फ़ील्ड से userfile , और form टाइप multipart का होना चाहिए।

  • इसलिए यह $data_value - array के साथ employee_model के पास जाएगा और यह saveemployee नामक फ़ंक्शन के तहत डेटा की बचत करेगा।
  • यदि आप अपना स्वयं का फ़ील्ड नाम सेट करना चाहते हैं तो बस इसके मूल्य को do_upload() विधि से पास करें
  • फ़ाइल अपलोडिंग कक्षा का उपयोग करके, हम फ़ाइलें अपलोड कर सकते हैं और हम अपलोड किए जाने वाले फ़ाइल के प्रकार और आकार को भी प्रतिबंधित कर सकते हैं।
  • display_errors() - do_upload() विधि गलत होने पर किसी भी त्रुटि संदेश को पुनः प्राप्त करता है। विधि स्वचालित रूप से प्रतिध्वनित नहीं होती है, यह डेटा को लौटा देती है ताकि आप इसे अपनी आवश्यकता के अनुसार असाइन कर सकें

अंकन:

ये सीआई में उपलब्ध सूचनाएं हैं और हम इसे लघु परिभाषा के रूप में index.php में परिभाषित कर सकते हैं और हम इसे संपूर्ण परियोजना में उपयोग कर सकते हैं।

EXT: The PHP file extension
FCPATH: Path to the front controller (this file) (root of CI)
SELF: The name of THIS file (index.php)
BASEPATH: Path to the system folder
APPPATH: The path to the "application" folder

मॉडल भाग:

public function saveemployee($data_value)
{
    $this->db->insert('employee',$data_value);
}
  • यह अपलोड की गई छवि के नाम के साथ employee मेज पर डेटा की बचत होगी।
  • और अपलोड की गई छवि को उस निर्देशिका में सहेजा जाएगा जिसे हमने रूट फ़ोल्डर या किसी अन्य फ़ोल्डर में बनाया है जिसे हम निर्दिष्ट करते हैं।


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow