codeigniter
Immagine / File Uploader in CodeIgniter
Ricerca…
Osservazioni
Non è necessario che tu debba usare gli stessi nomi per (Controller, File, Classe, ID) o qualunque cosa possa essere. Tutte le cose che ho usato sono per lo scopo di comprensione del flusso di codice e le mie ipotesi. Spetta allo sviluppatore che prende il codice e modifica il codice / nome in base al loro desiderio e quindi ospitare il codice e avere successo.
Uploader singolo file / immagine
Vedremo ora come il codice Caricamento immagine / file funziona nel metodo di configurazione nativa con l'aiuto dei moduli che sono stati proposti dal modo CI.
Il caricamento di file in PHP ha due scenari. È indicato di seguito come segue.
- Uploader di singole immagini / file - Questo può essere salvato con l'aiuto della variabile normale nell'attributo del modulo. (Es.)
<input type="file" name="image" />
- Multi-image / File Uploader - Questo può essere salvato solo con l'aiuto della variabile array per il nome nel tipo di file. (Es.)
<input type="file" name="image[]" />
.
La variabile di matrice cioè name="profile[]"
può essere conservata anche per la single image
caricamento, nonche la multi-image
uploader troppo.
Quindi il codice di upload di immagini singole / file nel formato nativo di CodeIgnitor è il seguente:
Visualizza parte:
<?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();
?>
Quindi se inviamo il modulo, andrà al
-
Employee
- Controller e ricerca della funzione denominataaddemployee
- Se è necessario l'attributo richiesto per il codice di uploader di file, è possibile aggiungere l'attributo HTML5
required
al tag di input.
Di seguito sono riportati i due esempi su come utilizzare l'attributo richiesto ma entrambi i metodi sono uguali.
- Metodo 1:
<input type="file" name="photo" required="required" />
- Metodo 2:
<input type="file" name="photo" required />
Quindi questi sono alcuni dei suggerimenti importanti che devono essere seguiti nella parte di visualizzazione dell'immagine / file uploader.
Parte controller:
<?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
}
}
?>
Nota: per impostazione predefinita, la routine di caricamento prevede che il file provenga da un campo modulo chiamato userfile
e che il form
deve essere di tipo multipart
.
- Quindi andrà su
employee_model
con l'array$data_value
e$data_value
i dati sotto la funzionesaveemployee
. - Se si desidera impostare il proprio nome di campo, passare semplicemente il suo valore al metodo
do_upload()
- Usando la classe Caricamento file, possiamo caricare file e possiamo anche limitare il tipo e la dimensione del file da caricare.
-
display_errors()
- Recupera tutti i messaggi di errore se il metododo_upload()
restituito false. Il metodo non eche automaticamente, restituisce i dati in modo che tu possa assegnarli come necessario
notazioni:
Queste sono le notazioni che sono disponibili nella CI e possiamo definirlo in index.php
come una definizione breve e possiamo utilizzarlo in tutto il progetto.
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
Parte di modello:
public function saveemployee($data_value)
{
$this->db->insert('employee',$data_value);
}
- Salverà i dati sulla tabella dei
employee
con il nome dell'immagine caricata. - E l'immagine caricata verrà salvata nella directory che abbiamo creato nella cartella principale o in qualsiasi altra cartella che specifichiamo.