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 EE Discussion :

Chemin de stockage image sur un serveur


Sujet :

Java EE

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2014
    Messages : 8
    Points : 3
    Points
    3
    Par défaut Chemin de stockage image sur un serveur
    Bonjour

    je dois uploader une image sur le serveur et le liens dans une BDD tout cela en restant dans un langage JAVA. J'ai regardé plusieurs site et j'ai quelques interrogations que les différents sites que j'ai vus ne répondait pas.

    Donc j'upload en utilisant :
    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
     
              public static boolean processFile(String path, FileItemStream item){
     
    		try{
     
    			File f = new File(path+File.separator+"images");
    			if(!f.exists())f.mkdir();
    			File savedFile = new File(f.getAbsolutePath()+File.separator+item.getName());
    			FileOutputStream fos = new FileOutputStream(savedFile);
    			InputStream is = item.openStream();
    			int x = 0;
    			byte[] b = new byte[1024];
    			while((x=is.read(b))!=-1){
    				fos.write(b,0,x);
    			}
    			fos.flush();
    			fos.close();
    			return true;
     
    		}catch(Exception e){
    			e.printStackTrace();
    		}
     
    		return false; 
     
    	}
    Se qui fonctionne très bien car ça m'upload le fichier ici C:\Users\.......\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\........\\images.

    Alors j'aimerai savoir si le stockage ici est provisoire sur un serveur et si oui où est-il préférable de stocker et comment construire l'url définitive de l'image.

    Merci.

  2. #2
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 791
    Points
    4 791
    Par défaut
    Citation Envoyé par steveoo61 Voir le message
    Alors j'aimerai savoir si le stockage ici est provisoire sur un serveur et si oui où est-il préférable de stocker et comment construire l'url définitive de l'image
    A quel endroit du serveur souhaites-tu stocker les images ?


    Citation Envoyé par steveoo61 Voir le message
    comment construire l'url définitive de l'image
    tu veux parler de l'url qui permettra au serveur Web de retrouver l'image ?
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2014
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    A quel endroit du serveur souhaites-tu stocker les images ?
    Dans WebContent un dossier images.

    tu veux parler de l'url qui permettra au serveur Web de retrouver l'image ?
    Oui pour pouvoir l'afficher dans ma JSP et la stocké a un endroit plus claire pour moi.

  4. #4
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 791
    Points
    4 791
    Par défaut
    Tu réponds toi-même à la question :
    1) pour l'application upload de java, tu dois voir quel est le chemin du dossier qui contiendra les images sur ton serveur
    2) pour JSP, tu dois regarder le chemin relatif à ta page pour faire l'url
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  5. #5
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2014
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Oui mais j'y arrive pas en faite actuellement pour le patch j'utilise ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String path = getServletContext().getRealPath("/");
    Car en faite je n'arrive pas à aller dans web content pour écrire sans retourner au tous début de l'url(c: ).

  6. #6
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Je ne vois pas l'intérêt de faire tout ce traitement si tu stockes tes images dans un sous-répertoire de /WebContent, c'est accessible directement par les pages JSP.

    Si par exemple tes images étaient dans /WebContent/images, tu aurais juste à faire ceci dans ta JSP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <img src="./images/monImage.jpg" />
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2014
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    oui pour la récupérer aucun problème, ce que je n'arrive pas c'est d'uploader dans WebContent sans écrire l'adresse en dure dans le paramètre path

  8. #8
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Pour l'enregistrement de ton image dans le répertoire qui va bien c'est très simple avec java.io.File.
    Tu peux même directement utiliser le chemin relatif ou si tu préfères le chemin physique passer par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    String physicalPath = getServletContext().getRealPath("/images");
    physicalPath += "/" + fileName;
    
    File file = new File(physicalPath);
    
    if (file.exists()) throw new Exception("Le fichier existe déjà");
    
    FileWriter fw = new FileWriter(file);
    fw.write(....)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  9. #9
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2014
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Oui c'est ce que j'ai fais à la base et cela crée le fichier ici C:\Users\.......\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\..........\\images.

    Mais cela sur le serveur c'est un dossier qui stock provisoirement non?

  10. #10
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Ça dépend du paramétrage de ta définition de serveur dans Eclipse...
    Si tu double-click sur la définition de ton serveur dans l'onglet "Servers", tu vas sur l'onglet "Deployment" et tu y trouveras 3 options (ex avec JBoss) :
    - Use workspace metadata (does not modify JBoss deploy folder)
    - Use the JBoss deploy folder
    - Use a custom deploy folder

    Par défaut, il prend l'option 1 et je te suggère d'utiliser l'option 2.

    Ceci dit, c'est une très mauvaise idée de stocker des images uploadées dans un sous-répertoire de WebContent, si un jour tu redéploies l'application, tu perdras toutes les images uploadées...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  11. #11
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2014
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    alors si je comprend bien tu me conseil d'utiliser celà?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    String physicalPath = getServletContext().getRealPath("/images");
    physicalPath += "/" + fileName;
     
    File file = new File(physicalPath);
     
    if (file.exists()) throw new Exception("Le fichier existe déjà");
     
    FileWriter fw = new FileWriter(file);
    fw.write(....)
    je testerai de l'héberger comme ça et je verai ce que celà va donner dans tous les cas merci pour le coups de pouce

  12. #12
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Ce que je ferais moi c'est de positionner une variable d'environnement sur le serveur qui me donne le chemin physique du répertoire d'images (positionné par exemple comme ceci : -DIMAGE_DIRECTORY=c:/data/images)

    Dans le code, tu as juste à récupérer ce chemin par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String path = System.getProperty("IMAGE_DIRECTORY");
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  13. #13
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2014
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Bonjour,

    Donc j'ai enfin eu le temps de mettre en ligne mon site pour tester.

    Alors en local cela fonctionnai très bien mais maintenant je suis un peu perdus c'est la première fois que j'upload et download quelque chose, je vous met le screen du dossier ou se trouve mes images sur le server.

    Nom : chemin.jpg
Affichages : 3073
Taille : 12,4 Ko

    La jsp ou j 'essaye de les afficher (biensur je sais que comme cela ca ne peut pas fonctionner c'est le code que j'avais en local mais il fonctionnait)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <a href="<c:url value="/images/${ image }"/>">
         <img class="imagecontent" alt=""  src="<c:url value="/images/${ image }"/>"/>
             <span class="imagedetail">
    	      <span ><c:out value="${ mapImages.value.nom }"/></span><br />
    	      <span ><c:out value="${ mapImages.value.petiteDesc }"/></span><br />
    	      <span ><c:out value="${ mapImages.value.description }"/></span>
    	 </span>
    </a>
    les parties du xml qui nous interesece xml idem c'est les versions local que j'ai utilisé
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    <filter>
            <filter-name>PrechargementFilter</filter-name>
            <filter-class>filters.PrechargementFilter</filter-class>
    </filter>
    <filter-mapping>
            <filter-name>PrechargementFilter</filter-name>
            <url-pattern>/*</url-pattern>
    </filter-mapping>
    <listener>
        <listener-class>config.InitialisationDAOFactory</listener-class>
    </listener>
    <servlet>
    <servlet>
        <description></description>
        <display-name>FileUploadServlet</display-name>
       <servlet-name>FileUploadServlet</servlet-name>
       <servlet-class>controleur.FileUploadServlet</servlet-class>
       <init-param>
          <param-name>chemin</param-name>
          <param-value>/fichiers/images/</param-value>
        </init-param>
        <multipart-config>
          <location>c:/fichiers/images</location>
          <max-file-size>10485760</max-file-size>
          <max-request-size>52428800</max-request-size>
          <file-size-threshold>1048576</file-size-threshold>
        </multipart-config>
     </servlet>
     <servlet-mapping>
        <servlet-name>FileUploadServlet</servlet-name>
        <url-pattern>/FileUploadServlet</url-pattern>
     </servlet-mapping>
     <servlet>
        <description></description>
        <display-name>FileDownloadServlet</display-name>
        <servlet-name>FileDownloadServlet</servlet-name>
        <servlet-class>controleur.FileDownloadServlet</servlet-class>
        	<init-param>
        		<param-name>chemin</param-name>
        		<param-value>/fichiers/images/</param-value>
        	</init-param>
     </servlet>
     <servlet-mapping>
        <servlet-name>FileDownloadServlet</servlet-name>
        <url-pattern>/images/*</url-pattern>
     </servlet-mapping>
    Merci de m'apporter assistance j'ai passé la journée d'hier a essayer de me dépatouiller de cela mais sans succès alors ce que j'essaye de faire c'est de pouvoir upload les images dans le fichier "images" et je les récupérer pour les afficher dans la jsp.

  14. #14
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2014
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Bonjour
    je re up ce sujet qui n'a pas trouvé de réponse et dont je reste bloqué merci

  15. #15
    Membre confirmé
    Avatar de geforce
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    1 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 1 055
    Points : 559
    Points
    559
    Par défaut
    Bonjour,
    Voir ce lien pour l'alternate document roots si tu utilise glassfish : https://docs.oracle.com/cd/E19776-01...qpl/index.html

    Sinon voici un code que j'ai réalisé avec tomcat CheckoutSVN.zip


Discussions similaires

  1. Stockage d'images sur le serveur
    Par stc074 dans le forum Développement Web en Java
    Réponses: 4
    Dernier message: 05/09/2010, 20h11
  2. uploader une image sur le serveur
    Par kespy13 dans le forum Langage
    Réponses: 5
    Dernier message: 07/04/2006, 20h01
  3. [Image]Stockage d'une image sur un serveur
    Par zoby43 dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 23/03/2006, 11h42
  4. [PHP-JS] charger plusieurs images sur le serveur
    Par ehmppowa dans le forum Langage
    Réponses: 4
    Dernier message: 13/12/2005, 16h22
  5. Enregistrement d'une image sur le serveur
    Par MHI dans le forum Langage
    Réponses: 3
    Dernier message: 07/04/2005, 15h25

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