2010-04-10 7 views
0

Je veux être sûr que les fichiers téléchargés par l'utilisateur sont réels vidéos ou des images, mais pas seulement un morceau de texte renommé en textfile.jpg. Quels sont les moyens d'assurer?Comment s'assurer que le fichier téléchargé est une vidéo ou une image?

Je vois le seul moyen: détecter le type de fichier par son extension et ensuite, selon le type de fichier, essayer d'obtenir des informations à ce sujet (par Imagemagick ou ffmpeg).

Existe-t-il d'autres moyens?

Merci.

Répondre

1

Sur de nombreux systèmes de type UNIX, vous avez le programme file qui inspecte le contenu du fichier. Sur mon système Ubuntu, ce accepte le drapeau --mime-type (recherche sur Google pour file est un cauchemar, je ne vais pas essayer de chercher comment standardisé c'est):

$ file --mime-type some_image.jpg 
some_image.jpg: image/jpeg 

Vous pouvez facilement analyser la sortie pour voir si la Le type MIME commence par image/ ou video/.

0

Vous pouvez utiliser la commande file, qui vous dira le type de fichier, à condition que vous soyez sur un hôte qui vous permet d'utiliser des fonctions telles que system de PHP.

0

Si la réponse de MdM ne s'applique pas dans votre cas, alors vous pourriez vérifier www.wotsit.org - il fournit des détails sur une vaste gamme de formats de fichiers ...

Martin.

0

Ce que vous cherchez est la possibilité d'identifier les fichiers par la signature du fichier (également appelé "nombres magiques").

La commande file offre cela, cependant, vous pouvez également mettre en œuvre vous-même, en utilisant des listes accessibles au public des numéros magiques:

FILE SIGNATURES TABLE

Questions connexes