2010-07-19 21 views
6

Estoy seguro de que esto es simple, pero no veo cómo hacer que cargar un archivo con CI sea opcional.carga del archivo codeigniter - ¿opcional?

Si deja el cuadro de entrada de archivos vacío, aparece el error "No seleccionó un archivo de carga".

La razón por la que quiero que sea opcional es porque mi formulario edita una lista de tipo de directorio, y no es necesario que cargue la imagen cada vez que edito la lista.

¿Hay una manera de eliminar el error "necesaria" la manipulación de la clase de archivo

Respuesta

13

Usar la siguiente:

<?php if ($_FILES AND $_FILES['field_name']['name']) 
{ 
    // Upload the file 
} 
+4

usarlo donde? ¿Por qué es tan difícil escribir un poco más para explicar a dónde va? – serdarsenay

+0

Estoy seguro de que en el controlador, antes de llamar a Codeigniters, se llama rutina. – Kyslik

2

archivo CodeIgniter opcionalmente subir ... funciona perfecto .... . :)

controlador ---------- ---------

function file() 
{ 
$this->load->view('includes/template', $data); 
} 

function valid_file() 
{ 
$this->form_validation->set_rules('userfile', 'File', 'trim|xss_clean'); 

if ($this->form_validation->run()==FALSE) 
{ 
    $this->file(); 
} 
else 
{ 
    $config['upload_path'] = './documents/'; 
    $config['allowed_types'] = 'gif|jpg|png|docx|doc|txt|rtf'; 
    $config['max_size']  = '1000'; 
    $config['max_width']  = '1024'; 
    $config['max_height'] = '768'; 

    $this->load->library('upload', $config); 

    if (!$this->upload->do_upload('userfile',FALSE)) 
    { 
    $this->form_validation->set_message('checkdoc', $data['error'] = $this->upload->display_errors()); 

    if($_FILES['userfile']['error'] != 4) 
    { 
     return false; 
    } 

    } 
    else 
    { 
    return true; 
    } 
} 

sólo tiene que utilizar estas líneas que lo hace opcionalmente,

if($_FILES['userfile']['error'] != 4) 
{ 
return false; 
} 

$_FILES['userfile']['error'] != 4 is for file required to upload. 

puede u hacer que unneccessory mediante el uso de $_FILES['userfile']['error'] != 4, entonces pasará este error para el archivo requerido y funciona muy bien con otros tipos de errores si los hay mediante el uso de retorno falsa, esperemos que funcione para u ....

+2

¿Puedes explicar la importancia de '4' y de dónde sacaste esto? – Sparky

0

Utilice este código en el controlador antes de llamar do_upload()

if (is_uploaded_file($_FILES['field_name']['tmp_name'])) { 
    // your code here 
} 
Cuestiones relacionadas