wie überprüft man den hochgeladenen Dateityp ist pdf [duplizieren]

8

Ich habe eine Funktion auf meiner Website hochgeladen und nur das Hochladen von PDF-Dateien ist erlaubt. So kann ich überprüfen, ob die hochgeladene Datei nur PDF-Dateien enthält. Genau wie getimagesize() , um die Bilddateien zu prüfen. Gibt es eine Möglichkeit, die Datei zu überprüfen, ist sicher, pdf zu sein. Mein Code ist unten gezeigt.

%Vor%

in diesem redirect_to und mysql_prep sind von mir definierte Funktionen. Aber Mime-Typ kann über Header geändert werden.So gibt es eine Möglichkeit, die Datei als orignal PDF zu überprüfen?

    
StaticVariable 14.06.2012, 18:23
quelle

3 Antworten

14

Sie können den MIME-Typ der Datei mit den Datei-Info-Funktionen überprüfen. Wenn es mit dem Typ 'application / pdf' zurückkommt, sollte es eine PDF sein.

Die Datei Info Funktionen wurden in PHP 5.3 hinzugefügt, aber davor können Sie die mime_content_type Funktion.

    
Ben Evans 14.06.2012, 18:31
quelle
8
%Vor%

mime_content_type ()

    
HBv6 14.06.2012 18:34
quelle
7

Suchen Sie nach der PDF Magic Number , indem Sie die Datei öffnen und die ersten paar Datenbytes lesen. Die meisten Dateien haben ein bestimmtes Format, und PDF-Dateien beginnen mit % PDF .

Sie können die ersten 5 Zeichen der Datei überprüfen, wenn sie gleich "% PDF-" sind, ist es wahrscheinlich eine echte PDF (dies beweist jedoch nicht endgültig, dass es sich um eine PDF-Datei handelt , da jede Datei mit diesen 5 Zeichen beginnen kann). Die nächsten 4 Zeichen in einer richtigen PDF-Datei enthalten die Versionsnummer (d. H. 1.2).

    
Mike 14.06.2012 18:33
quelle

Tags und Links