Un report.xlsx hipotético pesa 8 KB e ábrese como unha páxina de inicio de sesión. O programa gardou un ficheiro correctamente, pero nunca obtivo a folla de cálculo prevista. O nome do ficheiro elíxese localmente; non é proba do que chegou.

Faga da aceptación un paso separado antes de publicar a descarga temporal:

  1. Esixa unha transferencia correcta e o estado de resposta esperado. Conserve o erro en lugar de tratar como completos os bytes escritos antes del.
  2. Compare o contido co tipo de artefacto esperado. Unha páxina de inicio de sesión ou de filtro pode devolver 200. O Content-Type pode ser incorrecto, e un prefixo HTML nunha folla de cálculo é un aviso que require investigación. Un ficheiro que comeza cunha liña de estado HTTP apunta máis ben a unha resposta en bruto.
  3. Valide todos os bytes gardados cunha suma de comprobación ou sinatura de confianza cando estea dispoñible. Só despois de superar as comprobacións requiridas debería a aplicación publicar ou usar o ficheiro final.

Calcular un hash sen un valor esperado só identifica os bytes que recibiu. Unha suma de comprobación sen sinatura obtida pola mesma ruta non fiable pode compartir a debilidade do artefacto; use unha expectativa de confianza independente.

Teña coidado tamén coas comparacións de tamaño. Un cliente HTTP pode descodificar a codificación de contido durante a lectura, polo que a lonxitude resultante do ficheiro pode diferir lexitimamente dunha cabeceira que describe a mensaxe codificada. Compare a expectativa do editor coa representación realmente gardada.

Se un intento falla, conserve a saída temporal só para unha retomada deliberada ou desbótea. Deixar bytes incompletos na ruta final obriga ao seguinte programa a adiviñar se son utilizables.

Artigos relacionados