MIME Art der Gitarren -Pro -Dateien?
Frage
Auf meiner Website möchte ich den Leuten erlauben, Gitarren -Pro -Dateien hochzuladen. Anscheinend gibt es für diese keinen spezifischen MIME-Typ (ich habe getestet und es gab mir "Anwendung/Oktettstrom"). Gibt es eine Möglichkeit, zu überprüfen und zu 100% sicher zu sein, dass die Dateien Guitar Pro -Dateien sind und nicht etwas anderes? Vielen Dank
Lösung
Lesen Sie die ersten Bytes aus der hochgeladenen Datei. Auf diese Weise habe ich beispielsweise hochgeladene Dateien untersucht, als ich ähnliche Funktionen erstellt habe.
$f = fopen($_FILES['tmp_name'], "rb");
fseek($f, 1);
$in = fgets($f, 19);
fclose($f);
if ($in == 'FICHIER GUITAR PRO') { ... }
Das Lesen von Chars vom 1. bis 19. würde mir String 'Fichier Guitar Pro' geben. Dieser Ansatz funktionierte für mich für GP4 -Dateien. Außerdem habe ich die Erweiterungen von Dateien überprüft. Beachten Sie jedoch, dass es keine wirkliche Überprüfung gibt, die Sie durchführen können, um böswillige Uploads zu filtern, da dies die erste Bytes sowie die Erweiterung ziemlich einfach ist. Es sollte also immer eine zusätzliche Moderation aller hochgeladenen Dateien geben.
Andere Tipps
Sie sollten die Datei analysieren und prüfen, ob die Versionszeichenfolge korrekt ist:
http://dguitar.sourceforge.net/GP4format.html