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

149
Visualizações
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 Respostas
Responde à pergunta

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