Foros del Web » Programando para Internet » PHP » CodeIgniter »

Problema con formulario al subir imagen

Estas en el tema de Problema con formulario al subir imagen en el foro de CodeIgniter en Foros del Web. tengo funcionando un slider que tiene su propio panel. Uso el mismo formulario para registrar y editar los datos. Con este, subo una imagen y ...
  #1 (permalink)  
Antiguo 17/03/2013, 23:25
Avatar de bocho0610  
Fecha de Ingreso: enero-2010
Ubicación: <? echo "Santiago, Chile"; ?>
Mensajes: 341
Antigüedad: 14 años, 11 meses
Puntos: 26
Problema con formulario al subir imagen

tengo funcionando un slider que tiene su propio panel. Uso el mismo formulario para registrar y editar los datos. Con este, subo una imagen y registro el nombre del archivo, descripcion, titulo y fecha en la base de datos, todo bien cuando registro datos.

Cuando edito un registro no me permite seguir, porque tiene requerido (por defecto) que seleccione un archivo, por ende cuando quiero editar un dato obligadamente debo seleccionar una imagen.

No entiendo como hacer para que no sea requerida la imagen al momento de editar datos, que el registro de la imagen y los demas sean independientes.

GRacias.

Mi controlador:
Código PHP:
Ver original
  1. public function add_date() {
  2.         $data = array(
  3.             "id" => "",
  4.             "titulo" => "",
  5.             "url" => "",
  6.             "descripcion" => "",
  7.             "error" => ""
  8.         );
  9.  
  10.         $id = $this->input->post("id");
  11.         $titulo = $this->input->post("titulo");
  12.         $url = $this->input->post("url");
  13.         $descripcion = $this->input->post("descripcion");
  14.  
  15.         $this->set_rules();
  16.  
  17.         if($this->form_validation->run() == FALSE){
  18.             $this->load->view('form-slider', $data);
  19.         }else{
  20.             $config['upload_path'] = '../images/slider';
  21.             $config['allowed_types'] = 'gif|jpg|jpeg|png';
  22.             $config['max_size'] = '100';
  23.             $config['max_width'] = '650';
  24.             $config['max_height'] = '300';
  25.             $config['encrypt_name'] = true;
  26.  
  27.             $this->load->library('upload', $config);
  28.  
  29.             if(!$this->upload->do_upload("imagen")){
  30.                 $data["id"] = $id;
  31.                 $data["error"] = $this->upload->display_errors();
  32.                 $this->load->view('form-slider', $data);
  33.             }else{
  34.                 $file_info = $this->upload->data();
  35.                 $data = array(
  36.                     'sli_id' => $id,
  37.                     'sli_img' => $file_info['file_name'],
  38.                     'sli_titulo' => $titulo,
  39.                     'sli_texto' => $descripcion,
  40.                     'sli_url' => $url
  41.                 );
  42.                 $add = $this->model_slider->add($data);
  43.                 if($add){
  44.                     $this->session->set_flashdata('success', 'Se a creado el registro satisfactoriamente');
  45.                 }else{
  46.                     $this->session->set_flashdata('error', 'Los datos no puedieron ser registrados');
  47.                 }  
  48.                 redirect("slider", "refresh");
  49.             }
  50.         }
  51.     }

Obviamente si saco la validacion puedo hacer lo que quiero, pero no seria la idea =/

Código PHP:
Ver original
  1. if(!$this->upload->do_upload("imagen")){
  2.  
  3.                 $data["id"] = $id;
  4.  
  5.                 $data["error"] = $this->upload->display_errors();
  6.  
  7.                 $this->load->view('form-slider', $data);
  8.  
  9. }
__________________
Sigueme en Twitter!
Septimoarte.cl <-- Un mundo en cine.

Última edición por bocho0610; 17/03/2013 a las 23:57
  #2 (permalink)  
Antiguo 04/04/2013, 19:06
 
Fecha de Ingreso: octubre-2011
Ubicación: USA
Mensajes: 166
Antigüedad: 13 años, 2 meses
Puntos: 19
Respuesta: Problema con formulario al subir imagen

Creo que por logica debes tener una funcion para insertar y otra para modificar, solo quitarias la validacion de la imagen requerida para la funcion modificar.

Saludos
  #3 (permalink)  
Antiguo 18/04/2013, 17:49
 
Fecha de Ingreso: julio-2006
Mensajes: 13
Antigüedad: 18 años, 5 meses
Puntos: 3
Respuesta: Problema con formulario al subir imagen

Puedes tener todo en una sola función pero debes indicarle le haga algun if (count($_FILES)>0) procese la imagen para que no te reclame por la validación.

Si extiendes la librería podrías al objeto input que indica si vienen archivos en el formulario $this->input->file('imagen') (https://github.com/EllisLab/CodeIgniter/wiki/Extended-Input-for-Files)

Etiquetas: formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:13.