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

200
Visualizações
El cargador de imágenes Ajax JS/PHP no funciona

Probé varios enfoques y seguí muchas preguntas en StkOvfl y las especificaciones W3, pero aún no tengo idea.

Tengo una entrada de formulario:

 <input type="file" multiple accept="image/*" id="item-image-upload" >

Luego, en mi Javascript (método prepareFormData ): [Ver la clase esencial completa aquí] :

 var files = this.getFiles(); var formData = new FormData(); for (var i = 0; i < files.length; i++) { var file = files[i]; if (!file.type.match('image.*')) { continue; } formData.append(this.uploadEntityName, file); }

Cuando console.log(files), obtengo todos los archivos bien. Pero formData no funciona. También intenté agregar un elemento arbitrario como:

 formData.append("Apple", 1);

La respuesta que recibo está vacía. El servidor reposa en php como:

 public function uploadImage(){ return json_encode(array_merge($_REQUEST, $_FILES)); }
over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Ahora estoy 99% seguro de que es su encabezado, y que si mira en sus registros o activa las Advertencias de PHP, verá Warning: Missing boundary in multipart/form-data POST data in Unknown on line 0

Copié esto (y agregué su línea de encabezado y eliminé el archivo de entrada) de MDN y lo ejecuté en un script en mi cuadro de desarrollo que está configurado para gritar todos los errores y obtuve ese error, seguido de una matriz vacía

 var formData = new FormData(); formData.append("username", "Groucho"); formData.append("accountnum", 123456); // number 123456 is immediately converted to a string "123456" // JavaScript file-like object var content = '<a id="a"><b id="b">hey!</b></a>'; // the body of the new file... var blob = new Blob([content], { type: "text/xml"}); formData.append("somefiles[]", blob); var request = new XMLHttpRequest(); request.open("POST", "MYDEVBOX/testpost.php"); // remove the line below and it works request.setRequestHeader("Content-Type", "multipart/form-data"); request.responseType = "json"; request.send(formData);

Volver unos minutos más tarde después de decidir investigar por qué. Tiene que ver con el límite de los datos de varias partes. El XHR configura automáticamente el encabezado con el límite coincidente cuando hace xhr.send(formData) (o en algún lugar del camino). Cuando configura ese encabezado, la solicitud lo usa en su lugar, borrando el límite y PHP no sabe dónde dividir la entrada. Aquí hay una captura de pantalla rápida que lo señala mucho mejor.

ingrese la descripción de la imagen aquí

over 4 years ago · Santiago Trujillo Relatório
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