Tengo 2 campos de texto y 1 carga de archivo que son obligatorios. Todo funciona cuando solo necesito los campos de texto, pero cuando solicito la carga del archivo, el error de validación sigue diciendo que se requiere un archivo, aunque seleccioné uno. ¿Alguien sabe lo que estoy haciendo mal? Muchas gracias de antemano.CodeIgniter: validación requerida de carga de archivo
// vista
<?php echo form_open_multipart('add'); ?>
<fieldset>
<input type="text" name="name" /><br>
<input type="text" name="code" /><br>
<input type="file" name="userfile" /><br><br>
<input type="submit"value="Add" />
</fieldset>
<?php echo form_close(); ?>
// controlador
public function add() {
$this->form_validation->set_rules('name', 'Name', 'required');
$this->form_validation->set_rules('code', 'Code', 'required');
//$this->form_validation->set_rules('userfile', 'Document', 'required');
//when the above line is active the upload does not go through
if ($this->form_validation->run() == FALSE) {
$data['page_view'] = $this->page_view;
$data['page_title'] = $this->page_title;
$this->load->view('template', $data);
}
else
{
$this->load->library('upload');
if (!empty($_FILES['userfile']['name']))
{
$config['upload_path'] = './uploads/';
$config['allowed_types'] = 'gif|jpg|png|jpeg';
$this->upload->initialize($config);
if ($this->upload->do_upload('userfile'))
{
$img = $this->upload->data();
$file_name = $img['file_name'];
$name = $this->input->post('name');
$code = $this->input->post('code');
$this->load->model('create', 'create_model');
$this->create_model->create_entry($name, $code, $file_name);
$data['page_view'] = $this->page_view;
$data['page_title'] = $this->page_title;
$this->load->view('template', $data);
}
else
{
echo $this->upload->display_errors();
}
}
}
}
Tengo una sugerencia, mejor insertar el html también. – Red
Bien, agregué el html, aunque es muy básico, no estoy seguro de si será útil. – Staysee
Podría deberse a que intentaste cargar un archivo que es demasiado grande. Intenta subir un archivo más pequeño, si funciona, entonces probablemente quieras cambiar la configuración en 'php.ini' para que puedas subir archivos más grandes. Además, si quiere depurar esto realmente rápido, le sugiero que haga un 'var_dump()' en el superglobal '$ _FILES' y vea cuál es el código de error del archivo cargado. –