Domanda

sul mio sito voglio permettere alle persone di caricare i file di chitarra pro. Apparentemente non c'è specifico tipo MIME per questi (ho provato e mi ha dato 'application / octet-stream'). C'è un modo per controllare ed essere sicuri al 100% i file sono di chitarra file Pro e non qualcos'altro? Grazie

È stato utile?

Soluzione

leggere i primi byte dal file caricato. Per esempio, questo è il modo che ho usato per controllare i file caricati quando stavo creando una funzionalità simile.

$f = fopen($_FILES['tmp_name'], "rb");
fseek($f, 1);
$in = fgets($f, 19);
fclose($f);

if ($in == 'FICHIER GUITAR PRO') { ... }

Quindi, la lettura di caratteri dal primo al diciannovesima mi avrebbe dato stringa 'Fichier GUITAR PRO'. Questo approccio ha funzionato per me per i file GP4. Inoltre ho usato per controllare le estensioni dei file. Tuttavia tenere presente che non v'è alcun reale controllo è possibile eseguire in modo da filtrare i files inseriti dannosi dal falsificare questo primo byte, così come estensione è abbastanza facile. Quindi ci deve essere sempre una certa moderazione aggiuntivo di tutti i file caricati.

Altri suggerimenti

Si dovrebbe analizzare il file e vedere se la stringa di versione è corretta:

http://dguitar.sourceforge.net/GP4format.html
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top