codeigniter
Bild- / Datei-Uploader in CodeIgniter
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 Funktionaddemployee
- 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.
- Methode 1:
<input type="file" name="photo" required="required" />
- 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 dasemployee_model
und speichert die Daten unter der Funktionsaveemployee
. - Wenn Sie Ihren eigenen Feldnamen
do_upload()
übergeben Sie den Wert einfach an die Methodedo_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()
alledo_upload()
wenn die Methodedo_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.