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

Développement Web en Java Discussion :

récupérer la valeur d'un input d'un bouton parcourir


Sujet :

Développement Web en Java

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations forums :
    Inscription : Mars 2010
    Messages : 14
    Points : 10
    Points
    10
    Par défaut récupérer la valeur d'un input d'un bouton parcourir
    Bonjour,
    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
     
    <html>
        <head>
     
        </head>
     
        <body>
     
     <div width=""  id="divFile">
         <input id="input_text_file" class="inputText" readonly="readonly" type="text" />
     
     
         <input onmousedown="return false" onkeydown="return false" class="inputFile"
          onchange="document.getElementById('input_text_file').value = this.value" type="file" />
     <script>
             var input1 = document.getElementById('input_text_file');//trouve l'input
    var valeur;
    function recup()
    {
      valeur =input_text_file.value;
    }
     
         </script>
         <%
         String s= document.getElementById('input_text_file').value ; //Erreur
         out.write(s) ;
         %>
    </div>
     
    	<input type="submit" value="Ajouter" />
     
        </body>
    </html>
    Ce Code me permet d'avoir une page web avec un bouton parcourir pour ajouter un fichier, je veux récupérer le nom de ce fichier et son chemin dans une variable pour pouvoir la réutiliser dans le reste de mon application.
    j'ai essayer avec une méthode javascript mais j'arrive toujours pas a récupérer le chemin de mon fichier.

    Merci

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    le nom peux éventuellement se trouver via input.value. Le chemin n'est pas accessible tu ne pourra jamais le récupérer (principes d'isolation / sandbox du javascript browser)

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    sauf a passer par des activeX ou du flash ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    et encore, même si c'est une passoire, je ne suis pas sur que le flash aie accès au filesystem comme ça

  5. #5
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,

    <%
    String s= document.getElementById('input_text_file').value ; //Erreur
    out.write(s) ;
    %>
    Un scriptlet s’exécute du coté serveur et javascript du coté client. Il ne faut pas les mélangés. Et java est différent de javascript.

    A+.

  6. #6
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Pour info: tu peux récupérer le chemin du fichier avec IE 6 si jamais tu peux forcer les utilisateurs à naviguer avec .

  7. #7
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    La vraie question est surtout de savoir à quoi peut bien te servir de connaitre le chemin du fichier chez l'utilisateur...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  8. #8
    Membre à l'essai
    Inscrit en
    Mars 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations forums :
    Inscription : Mars 2010
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    Bonjour a tous,
    Merci pour vos intervention , je débute en java donc j'arrive pas à assimiler et bien comprendre vos réponses.

    Mon but est de récupérer le contenu du champs après envoi de l'upload, (je travaille avec Java EE) pour après l'utiliser dans le reste de mon application dans laquelle j’utilise des informations extraites de fichiers texte, donc a chaque ajout ou upload d'un nouveaux fichier j'aurai besoin des ses cordonnés pour le manipuler dans mon programme.

    J'ai trouver ce code (.jsp) au lieux du précèdent, mais à ce que j'ai découvert d'une tuto il faut faire une classe pour récupérer les données (.java)

    (.jsp)
    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
     
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <title>Envoi de fichier</title>
            <link type="text/css" rel="stylesheet" href="<c:url value="/inc/form.css"/>" />
        </head>
        <body>
            <form action="<c:url value="/upload" />" method="post" enctype="multipart/form-data">
                <fieldset>
                    <legend>Envoi de fichier</legend>
     
                    <label for="description">Description du fichier</label>
                    <input type="text" id="description" name="description" value="" />
                    <br />
     
                    <label for="fichier">Emplacement du fichier <span class="requis">*</span></label>
                    <input type="file" id="fichier" name="fichier" />
                    <br />
     
                    <input type="submit" value="Envoyer" class="sansLabel" />
                    <br />                
                </fieldset>
            </form>
        </body>
    </html>

    (classe.java)
    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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
     
    package bean;
     
    import javax.faces.bean.ManagedBean;
    import javax.faces.bean.RequestScoped;
    import java.io.IOException;
     
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.Part;
     
     
    @ManagedBean
    @RequestScoped
    public class uploadCom extends HttpServlet {
     
        /** Creates a new instance of uploadCom */
        public uploadCom() {
        }
       	public static final String VUE = "/WEB-INF/upload.jsp";
            public static final String CHAMP_DESCRIPTION = "description";
        @Override
    	public void doGet( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException{
    		/* Affichage de la page d'envoi de fichier */
    		this.getServletContext().getRequestDispatcher( VUE ).forward( request, response );
    	}
     
        @Override
    	public void doPost( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException{
    		 /* Récupération du contenu du champ de description */
        String description = request.getParameter( CHAMP_DESCRIPTION );
        request.setAttribute( CHAMP_DESCRIPTION, description );
     
        /*
         * Les données reçues sont multipart, on doit donc utiliser la méthode
         * getParts()
         */
        for ( Part part : request.getParts() ) {
            /*
             * Pour chaque donnée issue de la requête, c'est-à-dire pour chaque
             * fragment contenu dans le retour de la méthode getParts(), il faut
             * déterminer s'il s'agit d'un champ classique ou d'un champ de type
             * fichier : on délègue cette opération à la méthode utilitaire
             * getNomFichier().
             */
            String nomFichier = getNomFichier( part );
     
            /*
             * Si la méthode a renvoyé quelque chose, il s'agit donc d'un champ
             * de type fichier (input type="file").
             */
            if ( nomFichier != null && !nomFichier.isEmpty() ) {
                String nomChamp = part.getName();
                request.setAttribute( nomChamp, nomFichier );
            }
        }
     
        this.getServletContext().getRequestDispatcher( VUE ).forward( request, response );
    }
     
    /* 
     * Méthode utilitaire qui a pour unique but d'analyser l'en-tête "content-disposition",
     * et de vérifier si le paramètre "filename"  y est présent. Si oui, alors le champ traité
     * est de type File et la méthode retourne son nom, sinon il s'agit d'un champ de formulaire 
     * classique et la méthode retourne null. 
     */
     
    private static String getNomFichier( Part part ) {
        /* Boucle sur chacun des paramètres de l'en-tête "content-disposition". */
        for ( String contentDisposition : part.getHeader( "content-disposition" ).split( ";" ) ) {
            /* Recherche de l'éventuelle présence du paramètre "filename". */
            if ( contentDisposition.trim().startsWith( "filename" ) ) {
                /*
                 * Si "filename" est présent, alors renvoi de sa valeur,
                 * c'est-à-dire du nom de fichier sans guillemets.
                 */
                return contentDisposition.substring( contentDisposition.indexOf( '=' ) + 1 ).trim().replace( "\"", "" );
            }
        }
        /* Et pour terminer, si rien n'a été trouvé... */
        return null;
    }
    	}
    ça n'a pas voulu marché j'obtient des erreurs, peut être car j'utilise glassfish 3.0 car j'ai eu des problème de mémoire avec Tomcat 7.0.14.
    l'erreur:
    In-place deployment at D:\Marwa\Java\ProjetTest\build\web
    Initializing...
    deploy?DEFAULT=D:\Marwa\Java\ProjetTest\build\web&name=ProjetTest&force=true failed on GlassFish Server 3.1
    Erreur lors du déploiement*: Exception while loading the app : java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: org.apache.catalina.LifecycleException: java.lang.ClassNotFoundException: bean.uploadCom. Pour plus d’informations, consultez le fichier server.log.
    D:\Marwa\Java\ProjetTest\nbproject\build-impl.xml:744:
    The module has not been deployed.
    at org.netbeans.modules.j2ee.deployment.devmodules.api.Deployment.deploy(Deployment.java:210)
    at org.netbeans.modules.j2ee.ant.Deploy.execute(Deploy.java:106)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
    at sun.reflect.GeneratedMethodAccessor187.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
    at org.apache.tools.ant.Task.perform(Task.java:348)
    at org.apache.tools.ant.Target.execute(Target.java:390)
    at org.apache.tools.ant.Target.performTasks(Target.java:411)
    at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)
    at org.apache.tools.ant.Project.executeTarget(Project.java:1368)
    at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
    at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
    at org.apache.tools.ant.module.bridge.impl.BridgeImpl.run(BridgeImpl.java:284)
    at org.apache.tools.ant.module.run.TargetExecutor.run(TargetExecutor.java:539)
    at org.netbeans.core.execution.RunClassThread.run(RunClassThread.java:153)
    y'aurait pas une méthode plus simple pour récupérer les champs du chemin de mon fichier ou une solution pour que ça marche ?


    Merci

  9. #9
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    La vraie question est surtout de savoir à quoi peut bien te servir de connaitre le chemin du fichier chez l'utilisateur...
    Je ne vois pas en quoi tu as besoin du chemin du fichier ???

    Accessoirement il serait également bon de ne pas confondre java et javascript ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  10. #10
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    sujet du traitement d'un upload en java déjà traité maintes fois:

    http://www.developpez.net/forums/d36...put-type-file/

Discussions similaires

  1. récupérer la valeur d'un input d'un bouton parcourir
    Par youmarva dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 19/07/2012, 11h15
  2. récupérer la valeur d'un input text après modification
    Par Tellounet dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 28/05/2009, 09h30
  3. [Prototype] Récupérer les valeurs de plusieurs input
    Par rockt13 dans le forum Bibliothèques & Frameworks
    Réponses: 4
    Dernier message: 13/02/2009, 09h56
  4. Récupérer la valeur d'un input hidden
    Par Jimmy_S dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 04/01/2008, 11h42
  5. récupérer la valeur d'un input file
    Par july dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 26/11/2007, 11h17

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