J'ai des images dans la corbeille, je veux vérifier l'en-tête pour vérifier le format (JPG, PNG, etc.) P>
Je ne veux pas utiliser des fichiers temporaires! J'ai une solution à l'aide de fichiers Temp. P>
7 Réponses :
Les fichiers sont-ils téléchargés ou sont-ils déjà sur le système de fichiers? P>
essayez d'utiliser mime_content_type () code> pour obtenir le format MIME du fichier. P>
Pourquoi ne pas simplement vérifier l'intégrité du fichier? :)
une alternative p>
Donc, la plupart de vos fichiers GIF ne sont pas réellement gifs? Il n'y a vraiment aucune raison que cela ne fonctionnerait pas si vous avez affaire à des téléchargements d'utilisateurs, et même vous n'avez probablement rien à craindre.
En 2012, certains utilisateurs croient qu'ils peuvent convertir des images simplement en renommant le fichier ... Donc, ce n'est pas fiable.
Les bits commencent par:
$JPEG = "\xFF\xD8\xFF" $GIF = "GIF" $PNG = "\x89\x50\x4e\x47\x0d\x0a\x1a\x0a" $BMP = "BM" $PSD = "8BPS" $SWF = "FWS"
Pourriez-vous donner un exemple de la manière dont vous les vérifieriez contre certaines données binaires à l'aide de PHP? Merci
@Donutreply - juste pour les personnes qui cherchent: gist.github.com/codebrauer/5fe9ad14fa9786b3d1f6
Avez-vous des informations sur les derniers bits pour trouver la fin d'une image?
@Daniel a découvert de fin de compte.am à la recherche également à la recherche de la même chose.
Voici une implémentation de la fonction décrite par Wrikken
Utilisez l'extension PHP FileInfo:
http: // de.php.net/manual/fr/funcunction.finfo-file.php p>
STI est à l'aide de la commande "Fichier" * Nix pour déterminer de manière fiable le type MIME d'un fichier donné: < / p> Cette extension est expédiée avec PHP 5.3 ou peut être installée à partir de PACL (PACL Install FileInfo) pour les versions antérieures. P> P>
http://php.net/manual/fr/function.getimagesize.php p>
"Index 2 est l'une des constantes IMAGETYPE_XXX indiquant le type de l'image." P>
Voir les documents de la fonction, il est écrit qu'il ne doit pas l'utiliser pour "Image".
Je peux voir que la plupart d'entre vous ne comprenaient pas la question suivante :) (question indiquait comment valider les données binaires dans la mémoire tampon, pas un fichier sur disque).
J'ai eu le même problème et je l'ai résolu avec: < / p>
Cette solution est la meilleure, si vous utilisez php> 5.3
Cela devrait en effet être avancé au-dessus du mien avec l'état actuel de PHP, 5,3 vieillit.
Vous obtenez quelque chose de similaire à Application / PDF; Charset = binaire code> qui, à son tour, peut être extrait de cette manière: Liste ($ mime, $ Raw_Charset) = exploser (';', $ Finfo-> tampon ($ Rawimage)); CODE > et ensuite (si vous avez besoin du charset): $ charset = exploser ('=', couper ($ Raw_Charset)) [1]; code>