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

565
Views
Cargar imagen usando FormData y Ajax no funciona, mensaje de error de índice indefinido

Estoy usando FormData y Ajax para pasar un archivo para cargar desde la vista al controlador en Codeigniter. La transferencia del archivo cargado se debe realizar mediante Ajax. A continuación se muestra el código que estoy usando. Si no incluyo la línea form.append("photoToUpload", fileToUpload.files[0]); , el paso de datos. Pero no funciona si form.append("photoToUpload", fileToUpload.files[0]); está incluido. El error que se muestra es "Índice no definido: photoToUpload".

Usando la línea console.log(fileToUpload.files[0]); en realidad muestra los detalles de la imagen que estoy tratando de cargar. Y usé for (var pair of form.entries()) { console.log(pair[0]+ ', ' + pair[1]); } para confirmar el contenido de FormData antes de llamar a Ajax para asegurarse de que tiene el contenido correcto.

Información adicional: el código funciona en localhost pero no en el servidor en vivo. El servidor tiene una versión de PHP un poco más alta pero aún 7.2, tiene la misma versión de Jquery. No estoy seguro de qué más comprobar.

 var fileToUpload = document.getElementById('photoToUpload'); // To check if fileToUpload has the contents console.log(fileToUpload.files[0]); var form = new FormData(); form.append("photoToUpload", fileToUpload.files[0]); form.append("caption", "Sample caption"); // To check if the FormData has the contents for (var pair of form.entries()) { console.log(pair[0]+ ', ' + pair[1]); } $.ajax({ url : "addToDB", type : "POST", data : form, cache : false, contentType : false, processData : false, success : function(response) { console.log(response); } });

back-end:

 echo $_POST['caption']; echo $_FILE['photoToUpload']['name']; // This also work in displaying the data passed in array format print_r($_POST); // Displays photoToUpload as undefined print_r($_FILES); // Empty array for photoToUpload
over 4 years ago · Santiago Trujillo
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!