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

Struts 1 Java Discussion :

Afficher une image


Sujet :

Struts 1 Java

  1. #1
    Membre éclairé
    Inscrit en
    Juin 2005
    Messages
    303
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 303
    Par défaut Afficher une image
    Bonjour,

    J'aimerais afficher (non telecharger) une image sans que l'utilisateur puisse connaitre le chemin de l'image en raison de la confidentialité des données.
    Je n'ai rien trouver de concret sur le Web.
    Est ce possible ? si oui, votre méthode SVP

    Merci

  2. #2
    Membre Expert Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Par défaut
    le tag <html:img> il ne te convient pas?

  3. #3
    Membre éclairé
    Inscrit en
    Juin 2005
    Messages
    303
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 303
    Par défaut
    non j'ai pas demandé comment afficher une image, ca je le sais, ce que je veux c'est comment afficher une image sans que l'utilisateur puisse connaitre le chemin d'accès à l'image.

  4. #4
    zag
    zag est déconnecté
    Membre éclairé

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 58
    Par défaut
    tu pourrais faire une servlet qui se chargerait d'aller récupérer l'image coté serveur puis de la renvoyer.

    De cette manière tu n'aurais plus besoin de mettre le chemin comme source dans l'img mais l'url de ta servlet avec des parametres permettant de déterminer quelle image renvoyer.

  5. #5
    Membre éclairé
    Inscrit en
    Juin 2005
    Messages
    303
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 303
    Par défaut
    c'est ce que j'ai fais en premier lieu.

    j'ai inséré le lien suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <html:img page="/submitRec.do?modul=loadpic" height="110" width="80"></html:img>
    et pour la servlet Action :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    try
    {
    	File f = new File("C:/"+photo);
     
    	if(nomcv.toLowerCase().endsWith("jpg"))	response.setContentType("image/jpeg"); 
    	else if(nomcv.toLowerCase().endsWith("gif"))	response.setContentType("image/gif");
    	else if(nomcv.toLowerCase().endsWith("bmp"))	response.setContentType("image/bmp");
    	else if(nomcv.toLowerCase().endsWith("png"))	response.setContentType("image/png");
    	response.setHeader("Content-Disposition",
    					                   "attachment; filename=\""+nphoto+"\";"); 
    	response.setContentLength((int)f.length());
    	OutputStream os = response.getOutputStream();
    	FileInputStream stream = new FileInputStream(f);
    	BufferedInputStream  bis = new BufferedInputStream(stream);
    	InputStream is = new BufferedInputStream(bis);
    	int count;
    	byte buf[] = new byte[4096];
    	while ((count = is.read(buf)) > -1)
    	{
    		os.write(buf, 0, count);
    	}
    	is.close(); 
    	os.close();
    }catch (Exception ex){ ex.printStackTrace();}
     
    return null;

  6. #6
    Membre Expert Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Par défaut
    Et qu'est ce qui ne marche pas??

    Et ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    File f = new File("C:/"+photo);
    Jtrouve que c'est assez dangereux, car ca depend vraiment de la machine. Après c'est toi qui voit. Pourquoi ne pas faire une variable d'environnement pour la base du chemin. Encore une fois ce n'est que des propositions tu es mieux placé pour voir le cadre et ce qui est le mieux.

  7. #7
    Membre éclairé
    Inscrit en
    Juin 2005
    Messages
    303
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 303
    Par défaut
    ce qui ne marche pas, c'est que l'image ne s'affiche pas.
    il n'execute pas la page="/submitRec.do?modul=loadpic". curieux.

    Par contre, en quoi c'est dangeraux le File f = new File("C:/"+photo); ?
    ton avis m'interesse. La machine c'est du win2003

  8. #8
    zag
    zag est déconnecté
    Membre éclairé

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 58
    Par défaut
    ce qui ne marche pas, c'est que l'image ne s'affiche pas.
    il n'execute pas la page="/submitRec.do?modul=loadpic". curieux.
    ca reste un peu vague...

    Peut être est-ce un problème de mapping de ton action, ou encore une erreur dans l'action. Il doit surement y avoir quelque chose dans tes logs...

    Par contre, en quoi c'est dangeraux le File f = new File("C:/"+photo); ?
    ton avis m'interesse. La machine c'est du win2003
    ce qui est "dangereux", c'est que tu mets en dur le chemin C:/.
    Bien evidemment cela marche dans ce cas présent, mais si tu déploies ton appli sur une autre machine, un autre OS, le chemin sera surement différent, et tu devras modifier ton code. D'ou l'interet de le parametrer (variable d'environnement, fichier de config...)

  9. #9
    Membre éclairé
    Inscrit en
    Juin 2005
    Messages
    303
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 303
    Par défaut
    c'est vrai que ca reste un peu vague, mais seulement voila, ca marche pas et y a aucune exception levée ou quoi que ce soit!! d'ou ma reponse trèèès vague

  10. #10
    zag
    zag est déconnecté
    Membre éclairé

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 58
    Par défaut
    Tu peux vérifier différents points


    • Le html généré est il correct (il y a bien "/submitRec.do?modul=loadpic" dans la balise img)?
    • Le mapping submitRec vers ton action est il ok?
    • Sinon essaie aussi de mettre des traces à différents endroits dans ton action, que l'on puisse être certain qu'il y passe bien, et si c'est le cas voir ou ca plante.
    • Peut être faudrait il faire un flush après le write dans ton while, ca pourrait éventuellement expliquer un blocage.

  11. #11
    Membre Expert Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Par défaut
    Pour le C:\ zag à bien répondu. C'est en dur. Si tu le redeploi ailleur et que ce n'est pas la meme lettre, boom boom patatraque, changement dans le code. Idem si un jour l'admin s'amuse à changer la lettre du lecteur ou sont présente tes photos. Après si t'es sur que ca reste toujours C:\ et que ton truc tourne toujours sur windows aucun probleme.


    Essaye :

    <html:img src="/submitRec.do?modul=loadpic" />

    au lieu de <html:img page="...........>

Discussions similaires

  1. [VB.NET] afficher une image stockée dans une table
    Par matonfire dans le forum ASP.NET
    Réponses: 4
    Dernier message: 19/03/2004, 11h21
  2. Afficher une image JPG qui se trouve dans une bdd
    Par Harry dans le forum Bases de données
    Réponses: 6
    Dernier message: 27/02/2004, 10h51
  3. Charger et afficher une image jpg avec les mfc
    Par glop - pas glop dans le forum MFC
    Réponses: 3
    Dernier message: 11/02/2004, 18h59
  4. Réponses: 2
    Dernier message: 04/02/2004, 22h32
  5. Afficher une image sans passer par les textures
    Par Black_Daimond dans le forum DirectX
    Réponses: 3
    Dernier message: 09/05/2003, 19h13

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