Išsaugotas failas dar nėra patikrintas atsisiuntimas
Prieš paskelbdami ar naudodami patikrinkite, ar atsisiuntimas per tarpinį serverį turi laukiamą failą, o ne prisijungimo puslapį ar neišsamų atsakymą.
Hipotetinis report.xlsx yra 8 KB ir atsidaro kaip prisijungimo puslapis. Programa sėkmingai išsaugojo failą, bet taip ir negavo numatytos skaičiuoklės. Failo pavadinimas parenkamas vietoje; tai nėra įrodymas, kas atvyko.
Padarykite priėmimą atskiru žingsniu prieš paskelbdami laikiną atsisiuntimą:
- Reikalaukite sėkmingo perdavimo ir laukiamos atsakymo būsenos. Išsaugokite klaidą, o ne laikykite prieš ją įrašytus baitus išsamiais.
- Palyginkite turinį su laukiamu failo tipu. Prisijungimo ar filtro puslapis gali grąžinti 200. Content-Type gali būti neteisingas, o HTML priešdėlis skaičiuoklėje yra įspėjimas, kurį reikia ištirti. Failas, prasidedantis HTTP būsenos eilute, rodo neapdoroto atsakymo įrėminimą.
- Patikrinkite visus išsaugotus baitus patikima kontrolės suma ar parašu, kai jie prieinami. Programa turėtų paskelbti ar naudoti galutinį failą tik po to, kai praeina reikiami patikrinimai.
Maišos skaičiavimas be laukiamos vertės tik identifikuoja gautus baitus. Nepasirašyta kontrolės suma, gauta tuo pačiu nepatikimu keliu, gali turėti tą pačią failo silpnybę; naudokite nepriklausomą patikimą lūkestį.
Būkite atsargūs ir lygindami dydžius. HTTP klientas skaitydamas gali iššifruoti turinio kodavimą, todėl gauto failo ilgis gali teisėtai skirtis nuo antraštės, apibūdinančios užkoduotą pranešimą. Palyginkite leidėjo lūkestį su faktiškai išsaugotu atvaizdavimu.
Jei bandymas nepavyksta, laikiną išvestį palikite tik sąmoningam tęsimui arba ją išmeskite. Neužbaigtų baitų palikimas galutiniame kelyje priverčia kitą programą spėlioti, ar jie tinkami naudoti.