|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Membre actif
![]() Inscription : juillet 2003 Messages : 257 ![]() |
Bonjour,
je demande votre avis sur un problème que je rencontre. En effet, je cherche la methode la plus efficace pour connaite le mime d'un fichier uploadé : - il y a $_FILES['userfile']['type'] : ca fonctionne mais on peut le detourner facilement en changeant l'extension du fichier ou en dedouillant les parametres du navigateur - Se baser sur l'extension du fichier : coté sécurité, c'est meme pas la peine - mime_content_type : ca fonctionne avec un moyen inferieur à 1/10 et dans la plus part des cas elle renvoi une chaine vide - les fonctions finfo (PECL) : la version actuelle est buguée (elle renvoi tout le temps 'application/x-dpkg'), mais meme si on contourne le probleme en supprimant tous les ! du fichier magic.mime, le resultat est tres loin d'etre satisfaisant - je suis sur windows (apache), alors les commandes genre 'file -bi $filename' ne sont pas possible voila, vous pouvez remarquez que je postule pas par hasard mais apres une longue recherche et des nombreuses experiences. C'est pour cette raison que je me tourne vers vous pour vous demander si vous connaissez soit : une autre methode fiable pour trouver le mime d'un fichier, ou tout simplement comment améliorer les resultats d'une des methodes citées ci-dessus. merci bcp d'avance |
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() Inscription : septembre 2004 Messages : 5 421 ![]() |
Eternel problème... Même sous *nix, le "file -bi" ne retourne pas toujours un résultat cohérent (genre Word pour un Powerpoint
Tu peux éventuellement jeter un oeil à http://www.freedesktop.org/wiki/Stan..._2dinfo_2dspec http://www.freedesktop.org/wiki/Soft...ared-mime-info
__________________
Get your motor runnin' Head out on the highway... |
|
|
00
|
|
|
#3 |
|
Membre confirmé
![]() Inscription : décembre 2006 Messages : 297 ![]() |
les quelques premier octect contient souvant des trucs genre
GIF, JFIF... c'est vrais que ça ne sera de toute façon jamais fiable... Personnellement, je te conseillerai d'établir un liste des entêtes de fichier type puis avec un file() de prendre la première ligne et de contrôlé cette entête avec les types que tu à établies. (certain fichier n'ont pas d'entête) |
|
|
00
|
|
|
#4 | ||||
|
Membre actif
![]() Inscription : juillet 2003 Messages : 257 ![]() |
c'est bien ce que je disais, c pas du cadeau!! mais bon j'ai un peu l'habitude maintenant!
Citation:
Citation:
Citation:
mais si tu veux dire que dans le meme type de fichier (word par exemple), il y a des documents qui ont des entetes et d'autres ne l'ont pas! ça ca va me tuer! en tout cas je vais me plonger à developper un petit algo qui fera l'affaire, je vais le tester et ensuite vous le proposer pour une éventuelle vérification comme on dit plusieurs tetes qui pensent c'est tjs mieu qu'une EDIT : pour Citation:
|
||||
|
|
00
|
|
|
#5 | ||
|
Expert Confirmé Sénior
![]() Inscription : septembre 2004 Messages : 5 421 ![]() |
Ou comment reinventer la roue
C'est justement le role de magic.mime Code magic.mime :
__________________
Get your motor runnin' Head out on the highway... |
||
|
|
00
|
|
|
#6 |
|
Membre confirmé
![]() Inscription : décembre 2006 Messages : 297 ![]() |
Les fichiers textes par exemples, n'ont pas d'entête par il sont brute.
Mais malheureusement, beaucoup de fichiers ne peuvent être identifié uniquement grâce à leur extension Je pense qu'il faudrait crée une base, avec 2 types d'informations en fonction du type de fichier: les éléments que l'on retrouve à coup sure (JFIF, GIF) le nombre de d'octet maximum ou trouvé ses éléments (11, 3) |
|
|
00
|
|
|
#7 |
|
Expert Confirmé Sénior
![]() Inscription : septembre 2004 Messages : 5 421 ![]() |
... ce que propose magic.mime et http://www.freedesktop.org/wiki/Soft...ared-mime-info
__________________
Get your motor runnin' Head out on the highway... |
|
|
00
|
|
|
#8 |
|
Membre confirmé
![]() Inscription : décembre 2006 Messages : 297 ![]() |
désolé :p on a posté en même temps :p j'avais pas vue
|
|
|
00
|
|
|
#9 |
|
Membre du Club
![]() |
Salut,
Qqun aurait-il un exemple pour utiliser magic mime ? |
|
|
00
|
|
|
#10 |
|
Expert Confirmé Sénior
![]() Inscription : septembre 2004 Messages : 5 421 ![]() |
http://php.net/mime_content_type
Les commentaires de la doc sont à lire aussi, on trouve parfois des perles. Par exemple, une version de `file` pour win32 : http://gnuwin32.sourceforge.net/packages/file.htm
__________________
Get your motor runnin' Head out on the highway... |
|
|
00
|
|
|
#11 |
|
Membre confirmé
![]() Inscription : décembre 2006 Messages : 297 ![]() |
|
|
|
00
|
|
|
#12 |
|
Membre actif
![]() Inscription : juillet 2003 Messages : 257 ![]() |
comme Mr N. a dit, on va pas chercher à réinventer la roue. Du coup, je me suis intéressé à la version de `file` pour win32 : Elle est facile à installer et à utiliser, elle utilise aussi le mime.magic mais détecte bcp plus de type qu'avec le mime_content_type ou fileinfo
seul regret pour moi, c'est qu'elle arrive pas à détecter le powerpoint (envoi chaîne vide) : si j'arrive à la faire fonctionner sûrement en bidouillant le magic.mime, ca sera parfait!! Pour des fichiers de text brute, il renvoi une chaîne qui contient text/plain + d'autres détails, mais bon c pas très grave, il suffit de traiter ensuite la chaîne envoyé en ne récupérant que la première partie en fait, est ce que quelqu'un a une idée de ce qu'il faut ajouter dans le magic.mime pour détecter le powertpoint? |
|
|
00
|
|
|
#13 | |
|
Expert Confirmé Sénior
![]() Inscription : septembre 2004 Messages : 5 421 ![]() |
Citation:
__________________
Get your motor runnin' Head out on the highway... |
|
|
|
00
|
|
|
#14 | |
|
Membre actif
![]() Inscription : juillet 2003 Messages : 257 ![]() |
Citation:
T'as pas une idée pour le powerpoint?! |
|
|
|
00
|
|
|
#15 | ||
|
Membre du Club
![]() |
J'ai fais un test en appelant "file" :
Code :
- excel et powerpoint sont vus comme du word Pensez-vous qu'il existe un moyen d'affiner ça ? |
||
|
|
00
|
|
|
#16 | |
|
Expert Confirmé Sénior
![]() Inscription : septembre 2004 Messages : 5 421 ![]() |
Citation:
@lr, quel est ton environnement ? Peut-etre que ton magic.mime n'est pas à jour...
__________________
Get your motor runnin' Head out on the highway... |
|
|
|
00
|
|
|
#17 | |||
|
Membre actif
![]() Inscription : juillet 2003 Messages : 257 ![]() |
Citation:
pour openoffice, à mon avis c'est plus simple, personnellement s'il me dit que c'est application/x-zip, alors je le detarre et je regarde s'il contient un fichier META-INF/manifest.xml, et normalement dans ce ficier il y a le mime. je sais c compliqué mais bon j'ai pas d'autres solution EDIT: pour freedesktop t'es sur Mr N. que cette appli pour fonctionner sur windows? j'ai l'impression que c'est une appli à *nix |
|||
|
|
00
|
|
|
#18 |
|
Membre du Club
![]() |
Notre serveur tourne sur une Fedora Core 3. Il faut que je regarde comment mettre à jour le fichier, mais si c'est pour avoir des chaînes vides, pas sûr que je le fasse
Merci pour votre aide |
|
|
00
|
|
|
#19 |
|
Expert Confirmé Sénior
![]() Inscription : septembre 2004 Messages : 5 421 ![]() |
Essaie de passe à FC5 ...
__________________
Get your motor runnin' Head out on the highway... |
|
|
00
|
|
|
#20 | |
|
Expert Confirmé Sénior
![]() Inscription : septembre 2004 Messages : 5 421 ![]() |
Citation:
Et il y a une implémentation en PHP mais le lien est mort
__________________
Get your motor runnin' Head out on the highway... |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com