IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Ruby on Rails Discussion :

Comment savoir si le fichier est une image


Sujet :

Ruby on Rails

  1. #1
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 600
    Points
    12 600
    Par défaut Comment savoir si le fichier est une image
    bonjour, j'utilise le code suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    file = params[:f][:fichier]
        if file.size > 0
          File.open("#{RAILS_ROOT}/public/images/#{file.original_filename}",'w+') do |f|
            f.write(file.read)
          end
        end

    comment remplacer file.size > 0

    par quelque chose comme file != :image

    j'utilise rmagick et je ne voudrais pas de plugin attachment_fu

    Auriez-vous une idée.

    Marci

  2. #2
    Membre émérite
    Avatar de bolo
    Inscrit en
    Novembre 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 309
    Points : 2 695
    Points
    2 695
    Par défaut
    Pourquoi ne pas vérifier extension

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     if file.split('.').last == 'jpg
        #process file
      end

  3. #3
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    le soucis de l'extension, c'est que ça peut se faire changer par l'utilisateur...

    Faudrait regarder le type mime, mais en googelant vite fait, j'ai pas trouvé

  4. #4
    Membre émérite
    Avatar de bolo
    Inscrit en
    Novembre 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 309
    Points : 2 695
    Points
    2 695
    Par défaut
    Ok peut être ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MIME::Types.type_for(filename)

  5. #5
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 600
    Points
    12 600
    Par défaut
    Bonjour dans la doc, il est dit que je dois ajouter

    or j'obtient ceci comme erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    no such file to load -- mime/types
    Je comprend pas bien!

    Merci de votre aide

  6. #6
    Membre émérite
    Avatar de bolo
    Inscrit en
    Novembre 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 309
    Points : 2 695
    Points
    2 695
    Par défaut
    tu as installé le gem ?


  7. #7
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 600
    Points
    12 600
    Par défaut
    Ben non, je viens de l'installer.

    je fais des tests.

    Bon WK

  8. #8
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 600
    Points
    12 600
    Par défaut
    Bonjour,

    je fais donc ceci

    Code RUBY : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    typeImage = MIME::Types.type_for("#{RAILS_ROOT}/public/images/banane.jpg")
     
    render :text => typeImage

    le résultat donne "I", moi j'aurais voulu quelque chose comme "image/jpg"


    merci de votre aide

  9. #9
    Membre émérite
    Avatar de bolo
    Inscrit en
    Novembre 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 309
    Points : 2 695
    Points
    2 695
    Par défaut
    Et pour un gif ca donne aussi I

  10. #10
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 600
    Points
    12 600
    Par défaut
    Ben, en faisant le test avec un gif, cela fonctionne, puis je refait le test avec un jpg et cela fonctionne aussi !!!

    Du coup c'est nickel pour moi.


    merci de ton aide.

  11. #11
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    j'ai trouvé ça en surfant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <%= form_tag( { :action => 'upload' }, :multipart => true )%>
    Upload file: <%= file_field( "form", "file" )%>
    <br />
    <%= submit_tag( "Upload file" )%>
    <%= end_form_tag %>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    def upload
    file_field = @params['form']['file'] rescue nil
    # file_field is a StringIO object
    file_field.content_type # 'text/csv'
    file_field.full_original_filename
    ...
    end
    p'têt que ça pourra t'aider

  12. #12
    Membre émérite
    Avatar de bolo
    Inscrit en
    Novembre 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 309
    Points : 2 695
    Points
    2 695
    Par défaut
    Citation Envoyé par MaitrePylos
    Ben, en faisant le test avec un gif, cela fonctionne, puis je refait le test avec un jpg et cela fonctionne aussi !!!

    Du coup c'est nickel pour moi.


    merci de ton aide.

    Je n'ai pas fait grand chose, mais contente de t'avoir aidé

  13. #13
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 600
    Points
    12 600
    Par défaut
    Citation Envoyé par titoumimi
    j'ai trouvé ça en surfant :
    Et je peux savoir pourquoi tu ne surf pas plus


    donc la solution que je retiens car simple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    file = params[:f][:fichier]//je récupère mon fichier
     
    file.content_type[0..4] =="image" //je vérifie si il est de type image
    simple,précis,concis

  14. #14
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut


    Je suis tombé dessus par hasard en recherchant une autre info, du coup j'ai pensé à toi

  15. #15
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    657
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 657
    Points : 910
    Points
    910
    Par défaut
    Salut,

    file = params[:f][:fichier]//je récupère mon fichier
    file.content_type[0..4] =="image" //je vérifie si il est de type image
    A vérifier mais je pense que ce content_type est celui envoyé par le navigateur, donc il peut-être facilement falsifié. Tout dépend si c'est important ou pas dans ton cas

  16. #16
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    sinon, en parcourant la doc de Rmagic, y'a aussi des méthodes pour avoir le type de fichier (format, mime_type) :

    http://www.simplesystems.org/RMagick...mageattrs.html


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment savoir si un fichier est une librairie ?
    Par kkt8 dans le forum Langage
    Réponses: 7
    Dernier message: 28/02/2011, 08h20
  2. comment être sûr qu'un fichier est une image?
    Par tomy4ever dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 11/04/2007, 17h53
  3. Réponses: 8
    Dernier message: 27/09/2006, 13h52
  4. Réponses: 28
    Dernier message: 29/07/2006, 16h04
  5. Unix - Comment savoir si un fichier est ouvert
    Par freddyboy dans le forum C
    Réponses: 7
    Dernier message: 06/10/2004, 15h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo