Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

571
Visualizações
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 à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda