Python: Vérifiez si le fichier téléchargé est jpg
Comment puis-je vérifier si un fichier a été téléchargé par un utilisateur est un véritable fichier jpg en Python (Google App Engine)?
C'est dans quelle mesure que je suis maintenant:
Script reçoit image via le Formulaire HTML Post et est traitée par le code suivant
...
incomming_image = self.request.get("img")
image = db.Blob(incomming_image)
...
J'ai trouvé mimetypes.guess_type, mais il ne fonctionne pas pour moi.
source d'informationauteur Federico Elles | 2008-11-05
Vous devez vous connecter pour publier un commentaire.
Si vous avez besoin de plus que de regarder une extension, d'une façon, on va lire le format de l'en-tête, et de vérifier qu'elle correspond à des données valides. Le format est:
donc un rapide logiciel de reconnaissance serait:
Cependant ce ne sera pas attraper des données incorrectes dans le corps. Si vous voulez un plus robuste vérifier, vous pouvez essayer de le charger avec PIL. par exemple:
Pas besoin d'utiliser et d'installer le PIL lybrary pour cela, il est le imghdr module standard exactement cié pour ce genre d'utilisation.
Voir http://docs.python.org/library/imghdr.html
Que vous avez une image à partir d'un flux, vous pouvez utiliser l'option diffuser sans doute comme cela :
Effectivement cela fonctionne pour moi dans Pylônes (même si je n'ai pas tout fini) :
dans le Mako modèle :
dans le téléchargement controleur :
Plus générale de la solution est d'utiliser le binding Python à la Unix "fichier" de la commande. Pour cela, installer le paquet python-magie. Exemple:
Utilisation PIL. Si elle peut ouvrir le fichier, c'est une image.
Du tutoriel...
Le dernier octet du fichier JPEG spécification semble varier au-delà de juste e0. La capture de la première des trois est "suffisamment bonne" d'une heuristique de signature à identifier de manière fiable si le fichier est un fichier jpeg. Veuillez voir ci-dessous la proposition modifiée: