Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

194
Vistas
Cargando archivos por AJAX y obteniendo un error en el manejo de PHP

Me estoy golpeando la cabeza contra las paredes con esta cosa durante 4 horas.

Creé una entrada (archivos múltiples) como se muestra a continuación, que no está dentro de un formulario.

 <label for="adaugaFisiere" class="btn btn-success tip" title="Poți adăuga fișiere JPG,PDF,DOC,XLS" data-original-title="Adauga imagini"><span>Adaugă fișiere</span></label> <input type="file" multiple="" id="adaugaFisiere" name="docImgs[]" class="filestyle invisible" required="" accept="image/*,.pdf,.doc,.docx,.xls,.xlsx" onChange="updateList(<?= $nextNrDoc ?>)">

A continuación, tengo el siguiente código JavaScript, que sube los archivos a un archivo PHP

 function updateList(nrDoc){ var inputFiles = $('#adaugaFisiere').prop('files'); var formData = new FormData(); formData.append('listFiles', inputFiles); $.ajax({ url: 'exec/files-upload.php', type: 'POST', cache: false, data: formData, contentType: false, processData: false, //Ajax events success: function(html){ $('#fileList').html(html); }, fail: function(res){ alert('Eroare upload'); } });

}

Y finalmente, el archivo PHP

 var_dump($_POST); $name_array = $_FILES['listFiles']['name']; $tmp_name_array = $_FILES['listFiles']['tmp_name']; // Number of files $count_tmp_name_array = count($tmp_name_array);

El archivo PHP es más grande, pero no es importante porque aparece un error en la parte superior del archivo.

El dump_var devuelve esto:

 array(1) { ["listFiles"]=> string(17) "[object FileList]" }

Y justo después viene el error:

 Warning: Undefined array key "listFiles" in D:\xampp\htdocs\cityadmin\exec\files-upload.php on line 4 Warning: Trying to access array offset on value of type null in D:\xampp\htdocs\cityadmin\exec\files-upload.php on line 4 Warning: Undefined array key "listFiles" in D:\xampp\htdocs\cityadmin\exec\files-upload.php on line 5 Warning: Trying to access array offset on value of type null in D:\xampp\htdocs\cityadmin\exec\files-upload.php on line 5

Corrí en círculos pero no pude entenderlo. ¿Por qué recibo este error si dump_var muestra los datos que llegan al archivo PHP? Alguien, alguna idea?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Por favor, no voten sobre esto, acabo de publicar para aquellos que están en la misma situación que yo.

Obtuve mi respuesta de este hilo.

Carga de archivos PHP/Javascript/AJAX mediante arrastrar y soltar. Los archivos se convierten en cadenas

El punto es que cuando tiene varios archivos de una entrada, debe recorrer cada uno y agregarlo a formData como una matriz. Después de eso, puede recuperarlo en PHP como $_FILES[][] . Es posible agregar otros datos $_POST[] a formData, con formData.append() y obtener una matriz $_POST[] y $_FILES[][] en el controlador de PHP.

Entonces, en lugar de hacer esto formData.append("fileList", fileList); , he hecho esto

 for (let i = 0; i < fileList.length; i++) { formData.append("fileList[]", fileList[i]); } formData.append('nextId', nrDoc); formData.append('post', 'files-upload');

Después de ese cambio, pude acceder a los archivos en el controlador de PHP y mis otras variables enviadas.

Solía funcionar hace algún tiempo, pero he estado ocupado con otro tipo de proyectos y no me di cuenta de que definitivamente algo había cambiado en la forma en que AJAX procesa las solicitudes.

Ahora, todo funciona según lo diseñado, sin advertencias ni errores. ¡Espero que alguien más encuentre una solución en esta publicación!

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda