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

562
Vistas
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
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