Buscar..


Observaciones

No es necesario que tenga que usar los mismos nombres para (Controlador, Archivo, Clase, ID) o lo que sea. Todo lo que he usado es para comprender el propósito del flujo de codificación y mis suposiciones. Depende del desarrollador que tome el código y edite el código / nombre de acuerdo con su deseo y luego aloje el código y tenga éxito.

Un solo archivo / cargador de imágenes

Ahora veremos cómo funciona el código de carga de imagen / archivo en el método de CI nativo con la ayuda de los formularios que ha propuesto la forma de CI.

Carga de archivos en PHP tiene dos escenarios. Se menciona a continuación de la siguiente manera.

  • Imagen única / cargador de archivos: se puede guardar con la ayuda de la variable normal en el atributo de formulario. (Por ejemplo) <input type="file" name="image" />
  • Imagen múltiple / Cargador de archivos: esto se puede guardar solo con la ayuda de la variable de matriz para el nombre en el tipo de archivo. (Por ejemplo) <input type="file" name="image[]" /> .

La variable de matriz a saber name="profile[]" puede también ser mantenido para la single image de subida, así como la multi-image cargador también.

Por lo tanto, el código de la Imagen única / Cargador de archivos en el formato Native CodeIgnitor es el siguiente:

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

Por lo tanto si presentamos el formulario iremos a la

  • Employee - Controlador y búsqueda de la función llamada addemployee
  • Si necesita el atributo requerido para el código del cargador de archivos, puede agregar el atributo HTML5 llamado required a la etiqueta de entrada.

A continuación se muestran los dos ejemplos de cómo usar el atributo requerido, pero ambos métodos también son los mismos.

  1. Método uno: <input type="file" name="photo" required="required" />
  2. Método dos: <input type="file" name="photo" required />

Por lo tanto, estos son algunos de los consejos importantes que se deben seguir en la parte de la vista del cargador de imágenes / archivos.

Parte del controlador:

<?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: de forma predeterminada, la rutina de carga espera que el archivo provenga de un campo de formulario llamado userfile , y el form debe ser de tipo multipart .

  • Por lo tanto, irá a employee_model con la matriz $data_value - array y guardará los datos bajo la función llamada saveemployee .
  • Si desea establecer su propio nombre de campo, simplemente pase su valor al método do_upload()
  • Usando la clase de carga de archivos, podemos cargar archivos y también podemos restringir el tipo y tamaño del archivo que se va a cargar.
  • display_errors() : recupera cualquier mensaje de error si el método do_upload() devuelve falso. El método no se hace eco automáticamente, devuelve los datos para que pueda asignarlos como necesite.

Notaciones:

Estas son las notaciones que están disponibles en el CI y podemos definirlo en el index.php como una definición corta y podemos usarlo en el proyecto completo.

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 del modelo:

public function saveemployee($data_value)
{
    $this->db->insert('employee',$data_value);
}
  • Se guardarán los datos en la tabla de employee con el nombre de la imagen cargada.
  • Y la imagen cargada se guardará en el directorio que hemos creado en la carpeta raíz o en cualquier otra carpeta que especifiquemos.


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow