Suche…


Bemerkungen

Es ist nicht erforderlich, dass Sie dieselben Namen für (Controller, Datei, Klasse, ID) oder was auch immer es ist, verwenden. Alles, was ich verwendet habe, dient dem Verständnis des Codierungsflusses und meiner Annahmen. Es liegt an dem Entwickler, der den Code nimmt und den Code / Namen nach seinen Wünschen ändert und dann den Code hostet und erfolgreich ist.

Single File / Image Uploader

Wir werden nun sehen, wie der Code zum Hochladen von Bildern / Dateien in der nativen CI-Methode mit Hilfe der von der CI-Methode vorgeschlagenen Formulare funktioniert.

Das Hochladen von Dateien in PHP umfasst zwei Szenarien. Es wird im Folgenden wie folgt erwähnt.

  • Einzelbild- / Datei-Uploader - Dieser kann mit Hilfe der normalen Variablen im Formularattribut gespeichert werden. (ZB) <input type="file" name="image" />
  • Multi-Image / File Uploader - Dies kann nur mit Hilfe der Array-Variablen für den Namen im Dateityp gespeichert werden. (ZB) <input type="file" name="image[]" /> .

Die Array-Variable name="profile[]" kann auch für den single image Uploader sowie für den multi-image Uploader beibehalten werden.

Daher lautet der Code für das Hochladen einzelner Bilder / Dateien im Format Native CodeIgnitor wie folgt:

Ansichtsteil:

<?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();
?>

Wenn wir also das Formular absenden, wird es an den

  • Employee - Controller und suchen Sie nach der Funktion addemployee
  • Wenn Sie das gewünschte Attribut für die Datei Uploader Code benötigen , können Sie das HTML5 - Attribut namens aufaddieren required , um den Input - Tag.

Im Folgenden finden Sie zwei Beispiele für die Verwendung des erforderlichen Attributs. Beide Methoden sind jedoch gleich.

  1. Methode 1: <input type="file" name="photo" required="required" />
  2. Methode Zwei: <input type="file" name="photo" required />

Daher sind dies einige der wichtigen Tipps, die im Ansichtsteil des Image- / Datei-Uploaders zu beachten sind.

Controller-Teil:

<?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            
        }    
    }
?>

Hinweis: Standardmäßig erwartet die Upload-Routine, dass die Datei aus einem Formularfeld namens " userfile , und das form muss vom Typ " multipart .

  • Daher geht es mit dem $data_value an das employee_model und speichert die Daten unter der Funktion saveemployee .
  • Wenn Sie Ihren eigenen Feldnamen do_upload() übergeben Sie den Wert einfach an die Methode do_upload()
  • Mit der File Uploading-Klasse können wir Dateien hochladen und können auch den Typ und die Größe der hochzuladenden Datei einschränken.
  • display_errors() - display_errors() alle do_upload() wenn die Methode do_upload() false zurückgegeben hat. Die Methode gibt kein Echo zurück, sondern gibt die Daten zurück, sodass Sie sie nach Belieben zuweisen können

Notationen:

Dies sind die Notationen, die im CI verfügbar sind, und wir können sie in der index.php als index.php definieren und im Entire-Projekt verwenden.

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

Modellteil:

public function saveemployee($data_value)
{
    $this->db->insert('employee',$data_value);
}
  • Es werden die Daten in der employee mit dem hochgeladenen Bildnamen gespeichert.
  • Das hochgeladene Bild wird in dem Verzeichnis gespeichert, das wir im Stammverzeichnis oder in einem anderen von uns angegebenen Ordner erstellt haben.


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow