Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

192
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!