Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/04/2014, 07:10
Avatar de reborn
reborn
 
Fecha de Ingreso: febrero-2010
Mensajes: 440
Antigüedad: 14 años, 10 meses
Puntos: 1
Upload de archivos: Cómo "ignorar" un índice vacío de un array?

Hola,

estoy haciendo un múltiple upload y estoy usando jquery para crear otro input cada vez q se quiera cargar otro archivo.

El problema es q si genero campos y no le cargo ningun archivo, no me sigue recorriendo el array.

Por ejemplo, de esta forma sube perfectamente los archivos, siempre y cuando se carguen todos los campos:



Pero de esta forma no me sigue recorriendo el array y se corta, ya q el primero tiene el name vacio:



Código PHP:
        $files $this->__upload($this->request->data['User']['files']);

private function 
__upload($files = array()){

        
$valid_formats = array('jpeg''jpg''png''gif''pdf');
        
$max_file_size 2097152;
        
        
$saveFiles = array();
        
//Recorro files
        
foreach ($files as $i => $file) {
        
//Verifico que no venga vacío el name
            
if(!empty($file['name'])){
               
//Tamaño de archivos
               
$maxFileSize $file['size'];

               if(
$maxFileSize == or $maxFileSize $max_file_size){
                   
$this->Session->setFlash(__('El tamaño del archivo no debe ser mayor a 2 Mb'));
                   
$this->redirect($this->referer());                        
               }else{ 
                    
//Obtengo extension de los archivos
                    
$type_archive explode('/'$file['type']);

                    
//Si la extension es permitida, subo archivo
                    
if(!in_array($type_archive[1], $valid_formats)){
                        
$this->Session->setFlash(__('Extensión de archivo no válida'));
                        
$this->redirect($this->referer());                            
                    }else{
                        
//Subo archivo

                        
if ($filename){
                            
$saveFiles[] = $filename;
                        }

                        
//Name de archivos se guardan serializados
                        
$files serialize($saveFiles);
                    }
               }
            }else{
               
//Si no hay archivos, se inserta vacío en base de datos
               
$files '';
            }
        }
return 
$files;

Entonces mi consulta es, como puedo ignorar esos indices q vienen vacios para q no afecte a los demas y siga ejecutandose la funcion __upload()?

En q le estoy errando?

Gracias