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 denominata addemployee
  • 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.

  1. Metodo 1: <input type="file" name="photo" required="required" />
  2. 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 funzione saveemployee .
  • 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 metodo do_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.


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow