Хипотетичка report.xlsx е 8 KB и се отвора како страница за најава. Програмата успешно зачува датотека, но никогаш не ја доби наменетата табела. Името на датотеката се избира локално; тоа не е доказ за тоа што пристигнало.

Направете го прифаќањето посебен чекор пред да го објавите привременото преземање:

  1. Барајте успешен пренос и очекуван статус на одговор. Зачувајте ја грешката наместо бајтите запишани пред неа да ги сметате за целосни.
  2. Споредете ја содржината со очекуваниот тип на датотека. Страница за најава или филтер може да врати 200. Content-Type може да биде погрешен, а HTML префикс во табела е предупредување што треба да се истражи. Датотека што започнува со HTTP статусна линија укажува на сурово рамкирање на одговорот.
  3. Проверете ги целосните зачувани бајти со доверлива контролна сума или потпис кога се достапни. Апликацијата треба да ја објави или употреби конечната датотека само откако ќе ги поминат потребните проверки.

Пресметувањето хаш без очекувана вредност ги идентификува само бајтите што ги добивте. Непотпишана контролна сума добиена преку истиот недоверлив пат може да ја дели слабоста на датотеката; користете независно доверливо очекување.

Внимавајте и при споредување на големини. HTTP клиентот може да го декодира кодирањето на содржината додека чита, па добиената должина на датотеката може законски да се разликува од заглавието што ја опишува кодираната порака. Споредете го очекувањето на издавачот со претставата што е навистина зачувана.

Ако обидот не успее, задржете го привремениот излез само за намерно продолжување или отфрлете го. Оставањето нецелосни бајти на конечната патека го принудува следниот програм да погодува дали се употребливи.

Поврзани статии