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

152
Vistas
Cargando archivos individualmente con ajax, ¿posible procesamiento de condiciones de carrera con php?

Tengo un formulario simple para cargar varios archivos.

 <form id="myform" enctype="multipart/form-data"> <input id="files" name="files" type="file" class="form-control" multiple> </form>

Cuando el usuario envía el formulario, subo cada archivo individualmente para seguir el progreso individualmente:

 for (i=0; i<$('#files')[0].files.length; i++){ var file = $('#files')[0].files[i]; uploadFile(file, recipient, $row); }

La parte principal de la función uploadFile():

 // Pack the data var data = new FormData(); data.append("file", file); $.ajax({ url: 'upload.php', type: 'POST', data: data, cache: false, contentType: false, processData: false, xhr: function(){ var myxhr = $.ajaxSettings.xhr(); if (myxhr.upload){ // do more stuff } return myxhr; },

Ahora, en mi archivo upload.php, me equivoqué al pensar que el archivo estaría en una variable POST pero aún se necesita acceder a través de $_FILES. Entonces, mi pregunta es, si desencadeno múltiples cargas, ¿podría encontrarme con alguna condición de carrera en la que el script php lea $_FILES y no contenga el archivo esperado? Debido a que no se llama a upload.php hasta que se haya cargado el archivo, entonces no estaría al tanto del estado actual de $_FILES, ¿verdad? ¿O estoy pensando demasiado en esto?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Al igual que cualquier otra solicitud HTTP, cada solicitud es completamente independiente. No entrarán en conflicto ni se causarán problemas entre sí (a menos que inicie tantos simultáneamente que el servidor simplemente no pueda hacer frente a la demanda).

Se lanza una nueva instancia del script PHP para tratar con cada solicitud de AJAX, que tiene su propia instancia separada de $_FILES para leer. El hecho de que esté utilizando AJAX para activar la solicitud es irrelevante; eso es completamente transparente para el servidor: no sabe (ni le importa) cómo se inició la solicitud.

about 4 years ago · Juan Pablo Isaza Denunciar
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