Cela peut être fait côté serveur avec GD en utilisant la fonction ci-dessous:. ((modified version of this)
function imageFileTypeFromBinary($file)
{
$binary = file_get_contents($file);
if (
!preg_match(
'/\A(?:(\xff\xd8\xff)|(GIF8[79]a)|(\x89PNG\x0d\x0a)|(BM)|(\x49\x49(\x2a\x00|\x00\x4a))|(FORM.{4}ILBM))/',
$binary, $hits
)
) {
return 'application/octet-stream';
//return false;
}
static $type = array (
1 => '.jpeg',
2 => '.gif',
3 => '.png',
4 => '.x-windows-bmp',
5 => '.tiff',
6 => '.x-ilbm',
);
return $type[count($hits) - 1];
// or simply return true
// return true;
}
si vous souhaitez, vous pouvez le faire revenir vrai, ou faux, par opposition au type mime
Cela ne vous dit rien d'autre que l'extension, et c'est un moyen courant pour que les sites autorisent par erreur des exécutables à télécharger – NotMe
J'ai dit "simple", par opposition à infaillible, mais je dirais que l'extension de fichier est utile même si vous ' Si un utilisateur renomme virus.exe en funpic.gif, alors l'extension est make une fausse promesse. Cependant, comme il prétend être un gif, nous pouvons alors tester spécifiquement si c'est vraiment le cas, le rejeter autrement. Sinon, nous devrons épuiser toutes les possibilités. –
Je devrais probablement ajouter que renommer l'extension peut * rendre * un fichier dangereux inoffensif. Par exemple, un fichier '* .VBS' qui détruit le système de fichiers n'est qu'une lecture intéressante lorsqu'il est renommé en' * .TXT'. –