Du ønsker sandsynligvis at detektere uploadens MIME-type uanset filtypenavnet, og det gøres ofte ved at læse filoverskriften for at detektere "magiske tal" eller andre bitmønstre, der indikerer en fils sande natur. Ofte er tekstfiler en kant-case, hvor der ikke registreres nogen header, og de første x bytes kan udskrives ASCII eller Unicode.
Selvom det er lidt af et kaninhul at dykke ned i, er der et par Python-biblioteker, der vil gøre det for dig. For eksempel:https://github.com/ahupp/python-magic vil fungere til dine behov ved blot at udlede mime-typen i henhold til filindholdet, som du derefter vil matche med de typer, du vil acceptere.
Et noget relateret sæt eksempelkode, der er specifikt til dine behov, kan findes her:https://stackoverflow.com /a/28306825/7341881
Edit:Eddies løsning svarer til funktionalitet; python-magic omslutter libmagic, hvilket er hvad Linuxs oprindelige "file"-kommando benytter sig af. Hvis du beslutter dig for at gå underprocesvejen, skal du være ekstra forsigtig med, at du ikke opretter en sikkerhedssårbarhed ved at rense brugerinput forkert (f.eks. brugerens angivne filnavn). Dette kan føre til et angreb, der giver vilkårlig adgang til din servers runtime-miljø.