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

Java Discussion :

Recuperation image sur forum


Sujet :

Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 221
    Par défaut Recuperation image sur forum
    Bonjour,

    Je souhaiterais récupérer des images sur un forum à l'aide d'un programme java.
    Malheureusement je n'y arrive pas car le forum est de type phpBB2.

    En effet l'attribut source de l'image et de ce type la :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ./download/file.php?id=95066
    Et donc en modifiant mon url du forum (je la complète) avec ce src, je retrouve bien mon image sur le browser. Par contre coté j'ava, je n'arrive pas à traiter correctement le flux provenant de cette URL.

    Quelqu'un saurait il faire ou aurait une idée ?
    Pour l'instant mes tests sont non concluant en essayant avec l'api ImageIO ou en copiant le contenu du flux de la page ou je recup l'image byte à byte

    Je rajoute le bout de code que j'utilise pour récupérer des images qui n'ont pas d'url ressemblant a celle decrite plus haut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    URL image = new URL(urlImage);
    URLConnection imageConnection = image.openConnection();
    BufferedImage im = ImageIO.read(imageConnection.getInputStream());
     
    String extension = urlImage.substring(urlImage.lastIndexOf('.')+1);
    String nom_image = urlImage.substring(urlImage.lastIndexOf('/')+1);
     
    FileOutputStream sortie = new FileOutputStream(cheminStockage+File.separator+"images"+File.separator+nom_image);
    ImageIO.write(im, extension, sortie);
    Merci par avance !!

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Lorsque tu copies les byte du flux dans un fichier, que contient le fichier ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 221
    Par défaut
    0 l'arrivée j'obtiens un fichier jpg par exemple.

    Mais il fait 0 ko et je ne peux pas l'ouvrir (aucun aperçu de disponible).

    pourtant j'utilise bien la méthode flux.close pour fermer le flux.

  4. #4
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    Jusqu'à présent je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    image = new ImageIcon(new URL("http://www.hop.com/download/file.php?id=95066"));
    et cela a toujours bien marché ; que se passe-t-il si tu essaies ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 221
    Par défaut
    Salut gifffftane,

    Tu ferais comment pour sauvegarder ton ImageIcon dans un fichier ensuite ?
    As tu un exemple complet STP ?

    Par contre l'objet ImageIcon a un width et un height égal à -1 ca semble pas très bon
    Alors que si je test avec une url classique d'une image, j'obtiens bien les taille de l'image ciblée dans les attributs de l'objets ImageIcon ...

  6. #6
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    mmmmmmm........... tu n'as pas l'adresse web exacte de ton image que je fasse le test ?

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 221
    Par défaut
    si

    voici une url possible :

    http://www.planetemuscle.com/phpBB2/...e.php?id=78747


    Je pense que le pblm viens plus du flux récupéré en fait ...

  8. #8
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    Malheureusement je constate que mon code ne fonctionne pas avec cette image

    Bon, il fôdra que je voye ça plus tard, merci de m'avoir fait découvrir un bug dans mes logiciels

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 221
    Par défaut
    Ba ecoute si jamais tu trouves une solution, je suis preneur !!

  10. #10
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    J'ai trouvé la solution : le serveur vérifie l'entête User-Agent.
    Avec un "openConnection", le User-Agent est "Java/1.6.0_13". La réponse du serveur est une page HTML vide.
    Par contre, en modifiant le User-Agent par celui d'un navigateur actuel, la réponse du serveur est un type mime JPG, et j'ai réussi à récupérer l'image sans aucun problème.
    Pour faire mon test, j'ai utiliser le proxy local proxomitron. Il permet de réécrire les entête HTTP à la volée.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 221
    Par défaut
    Salut dinobogan,

    Merci pour tes recherches
    Tu peux mettre un exemple de code traduisant ton idée STP ?

  12. #12
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Citation Envoyé par sebus Voir le message
    Tu peux mettre un exemple de code traduisant ton idée STP ?
    Je pensais avoir été limpide dans mes explications
    Qu'est-ce que tu n'as pas compris ?
    Pour modifier le user-agent, je comprends bien que tu ne vas pas utiliser un proxy local, il faut donc faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    urlConnection.setRequestProperty( "user-agent", "celui de ton navigateur" );
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 221
    Par défaut
    Oui c'était à cause du user-agent que j'étais perdu

    Donc voici mon bout de code complet qui marche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    String urlImage = "http://www.planetemuscle.com/phpBB2/download/file.php?id=96680";
     
    URL image = new URL(urlImage);
    URLConnection urlConnection;
    HttpURLConnection httpURLConnection;
    urlConnection = image.openConnection();
    httpURLConnection = (HttpURLConnection)urlConnection; 
    httpURLConnection.addRequestProperty("user-agent", "Firefox/1.5.0.5");
     
    FileOutputStream destinationFile = new FileOutputStream("D:/stock/toto.jpg");
     
    BufferedImage bImage = ImageIO.read(urlConnection.getInputStream());
    ImageIO.write(bImage, "jpg", destinationFile);
    Un grand merci à tous !!!

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 03/03/2009, 16h35
  2. [Forum] Stockage des images sur developpez ou sur site externe ?
    Par veevee dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 3
    Dernier message: 10/04/2008, 18h38
  3. Upload d'images sur le forum
    Par KibitO dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 2
    Dernier message: 09/10/2004, 23h18

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