Foros del Web » Programando para Internet » PHP »

Comprobar si existen archivos cargados en campo tipo file multiple html5

Estas en el tema de Comprobar si existen archivos cargados en campo tipo file multiple html5 en el foro de PHP en Foros del Web. Hola. Vuelvo a plantearme el mismo problema que tenía anteriormente con los campos tipo "FILE" para los envíos de archivos pero esta vez con un ...
  #1 (permalink)  
Antiguo 13/11/2015, 09:14
Avatar de kahlito
Colaborador
 
Fecha de Ingreso: marzo-2003
Ubicación: En el Estrecho y el mar
Mensajes: 2.936
Antigüedad: 21 años, 1 mes
Puntos: 65
Comprobar si existen archivos cargados en campo tipo file multiple html5

Hola.

Vuelvo a plantearme el mismo problema que tenía anteriormente con los campos tipo "FILE" para los envíos de archivos pero esta vez con un multiple de html5.

Por ejemplo anteriormente hacía la comprobación de esta manera y todo bien:

Código HTML:
Ver original
  1. <input type="file" name="imagen_perfil">

Código PHP:
Ver original
  1. $archivo =  $_FILES['imagen_perfil']['tmp_name'];
  2. //Si el campo imagen está vacío
  3. if(empty($archivo)){
  4.     echo "No existe ningún archivo cargado";
  5. }
  6. else{
  7.     echo "Si hay archivos cargados";
  8. }

Sin embargo ahora al ser un campo multiple no encuentro la manera y cuando no hay archivos cargados para enviar siempre me dice que si:

Código HTML:
Ver original
  1. <input type="file" id="archivo" name="upload[]" title="Enviar imagen" multiple="multiple" />

Código PHP:
Ver original
  1. $campo_imagenes = $_FILES['upload']['tmp_name'];
  2.    
  3.     if(empty($campo_imagenes)){
  4.         echo "Campo de imágenes vacío, hago el envío normal";      
  5.     }
  6.     else{
  7.         echo "Campo de imágenes lleno";
  8.     }

He probado con isset y alguna que otra manera pero tampoco lo reconoce.

¿Alguna otra manera de comprobarlo?, saludos.
  #2 (permalink)  
Antiguo 13/11/2015, 10:29
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Comprobar si existen archivos cargados en campo tipo file multiple html5

La cuestión es que ahora la información viene en forma de array y debes accederlo de otra manera mediante un índice.

Lee en el manual cómo es que funciona esa parte: http://php.net/manual/es/features.file-upload.php
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 13/11/2015, 12:27
Avatar de kahlito
Colaborador
 
Fecha de Ingreso: marzo-2003
Ubicación: En el Estrecho y el mar
Mensajes: 2.936
Antigüedad: 21 años, 1 mes
Puntos: 65
Respuesta: Comprobar si existen archivos cargados en campo tipo file multiple html5

Hola pateketrueke.

La verdad es que había probado antes en forma de array pero nada, y ahora viendo tu explacación y que solo lo puedo hacer con array he hecho nuevas búsquedas y creo que así consigo lo que busco:

Código PHP:
Ver original
  1. $campo_imagenes = $_FILES['upload']['tmp_name'];
  2.      $nombre_imagenes = $_FILES['upload']['name'];
  3.  
  4.       if(count($campo_imagenes) > 0){
  5.         //Hago un recorrido por cada archivo
  6.         for($i=0; $i<count($nombre_imagenes); $i++) {
  7.             //Obtengo la ruta del archivo temporal
  8.             $ruta_archivo_temporal = $campo_imagenes[$i];
  9.  
  10.             //Compruebo si hay algún archivo seleccionado o cargado
  11.             if($ruta_archivo_temporal != ""){
  12.                 echo "Hay archivos cargados";
  13.             }
  14.             else{
  15.                 echo "No hay archivos cargados";
  16.             }
  17.         }
  18.      }

También había probado de otra forma más clásica con foreach pero no lo saco igual que con la anterior.

Código PHP:
Ver original
  1. $campo_imagenes = $_FILES['upload']['tmp_name'];
  2.      
  3.         foreach($campo_imagenes as $file)
  4.         {          
  5.             //Obtengo la ruta del archivo temporal
  6.             $ruta_archivo_temporal = $campo_imagenes[$i];
  7.  
  8.             //Compruebo si hay algún archivo seleccionado o cargado
  9.             if($ruta_archivo_temporal != ""){
  10.                 echo "Hay archivos cargados2";
  11.             }
  12.             else{
  13.                 echo "No hay archivos cargados2";
  14.             }
  15.         }

Espero que con la primera manera que he puesto arriba esté en lo correcto. Gracias de nuevo, un saludo.

Etiquetas: campo, file, html, html5, tipo
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 06:40.