Ruby Forum Rails France > lire entete d(un fichier

Posted by Katebe Ibnmaleke (katebe)
on 06.08.2008 13:15
Bonjour,

Je voudrais savoir s'il existe un gems ou plugin qui lit les entetes des
fichier quelconque ...

j'ai besoin de ce gems pour connaitre le type exacte de fichier plus
l'information (png,jpg,pdf...).
si j'utilise la method simple qui extraire type depuis extension; ça
c'est dangereux .;)
et merci d'avance
Posted by Dohko Aurora (kael)
on 06.08.2008 13:31
(Received via mailing list)
Bonjour,

Si je ne me trompe pas, ce que tu cherche c'est le type MIME.
Tu as une classe MIME integrée au framework (http://
api.rubyonrails.org/classes/Mime/Type.html).


On 6 août, 14:15, Katebe Ibnmaleke <list-incom...@andreas-s.net>
Posted by Katebe Ibnmaleke (katebe)
on 06.08.2008 18:21
Bonjour ;Merci pour votre reponse

> Tu as une classe MIME integr�e au framework 
>(http://api.rubyonrails.org/classes/Mime/Type.html).

j'ai essaye gems "type-mimes" ;j'ai verifier avec cette fonction le type 
d'un fichier par exemple :

>  def swfupload_file(data)
>      data.content_type = MIME::Types.type_for(data.original_filename).to_s
>      p data.content_type
>  end

pour la premier test avec comme fichier :
  mon_fichier.pdf ==> il me donne application/pdf ,c'est bien
pour la méme fichier je changer juste l'extension par exemple png 
resultat :image/png .
j'ai enlever encore exetension resultat : ""
donc il verifier le type de fichier par rapport extension ça c'est pas 
bien pour la securite.
je demande si il est possible et j'ai entendus dans quelque part q'il 
exist une methode qui verifier le type par rapport entete de fichier.
enfin j'ai essaye avec une commande linux "file mon_fichier';le resultat 
est meilleur
et merci d'avance.
Posted by Cyrille (Guest)
on 07.08.2008 03:53
(Received via mailing list)
Ou tu peux utiliser mimetype_fu: http://code.google.com/p/mimetype-fu/
Posted by Katebe Ibnmaleke (katebe)
on 07.08.2008 13:06
bonjou
Merci pour votre reponse,
> Ou tu peux utiliser mimetype_fu: http://code.google.com/p/mimetype-fu/

c'est la meme chose que classe MIME::Types,qui cherche type dans 
extension
donc j'utilise maintenant la commande linux qui donne des resuletat 
satisfaisant.
je donne l'exemple :

>       dom = "#{RAILS_ROOT}/public/#{file.original_filename}"
>       @content_type = %x[file -F, -i #{dom}]
>       p @content_type

Bureau/mon_fichier, application/pdf
si tu remarque que le fichier sans exetension,si je change l'extension 
ça marche nickel.
j'ai une question ,c'est quoi la fonction "%x" a quoi ça sert ?
et merci d'avance.