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

Servlets/JSP Java Discussion :

Comment récupérer le path d'un fichier à partir de "Parcourir"


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Développeur Java
    Inscrit en
    Février 2010
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2010
    Messages : 45
    Par défaut Comment récupérer le path d'un fichier à partir de "Parcourir"
    Bonjour,
    Je suis débutante sur Java, RichFaces et mon application est une application java qui utilise une interface web avec des composants RichFaces (xhtml).

    Ce que je cherche désespéremment à faire est d'afficher une interface qui permet aux utilisateurs de choisir un répertoire (ou des fichiers de ce répertoire) à travers l'interface "Parcourir", puis je récupère juste après le path du répertoire pour faire mes traitements.

    - FileUpload charge le(s) fichier(s) sans que je puisse récupérer le nom (je ne veux pas charger les fichiers, j'ai mes propres traitements).
    - <input type=file> ... je n'arrive pas à récupérer le nom et parait qu'il ne renvoi pas le path complet
    - input juste du texte c'est possible mais je veux offrir à l'utilisateur l'interface "parcourir" pour leur faciliter la recherche du répertoire...

    Les experts dans la matière, merci d'avance de m'aider ... j'ai pas mal cherché mais je me perd un peu !

  2. #2
    Membre très actif Avatar de yacine.dev
    Inscrit en
    Octobre 2009
    Messages
    177
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Octobre 2009
    Messages : 177
    Par défaut uplode un fichier avec jsp
    voiçi un code c'est peut etre ce que tu cherche.
    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
     
       <%@ page import="org.apache.commons.fileupload.*,org.apache.commons.fileupload.*,org.apache.commons.fileupload.DiskFileUpload,java.util.List,org.apache.commons.fileupload.disk.*,org.apache.commons.fileupload.servlet.*,java.util.*,java.io.*,java.io.InputStream" %>
            <% 
            // Check that we have a file upload request
    boolean isMultipart = ServletFileUpload.isMultipartContent(request);
    // Create a factory for disk-based file items
    FileItemFactory factory = new DiskFileItemFactory();
     
    // Create a new file upload handler
    ServletFileUpload upload = new ServletFileUpload(factory);
     
    // Parse the request
    List /* FileItem */ items = upload.parseRequest(request);
     
    // Process the uploaded items
    Iterator iter = items.iterator();
    while (iter.hasNext()) {
        FileItem item = (FileItem) iter.next();
     
        if (item.isFormField()) {
           String fieldName = item.getFieldName();
    if(fieldName.equals("name"))
    request.setAttribute("msg", "Thank You: " + item.getString());
        } else {
            
           File fullFile = new File(item.getName());
           String nom=fullFile.getName();
                  File savedFile = new File("c:/tmp/", fullFile.getName());
     
    item.write(savedFile);
        }
    }
            %>

  3. #3
    Membre averti
    Femme Profil pro
    Développeur Java
    Inscrit en
    Février 2010
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2010
    Messages : 45
    Par défaut
    Merci pour l'aide.
    Je ne suis pas sûre de bien comprendre ton code ... (je n'y connais rien en web, je débute)

    A priori dans la variable "request" tu dois trouver l'url ou le path du(des) fichier's) non ?

    C'est ce qu'envoi le client (ie l'interface JSF/RichFaces pour mon application), et je crois que c'est ça que je cherche à récupérer.

    Quel est le code à mettre dans l'xhtml pour que l'utilisateur puisse fournir le path (== request ?) pour communiquer à la partie serveur java ?

    Est-ce que tu peux m'expliquer un peu plus s'il te plait ?

  4. #4
    Membre très actif Avatar de yacine.dev
    Inscrit en
    Octobre 2009
    Messages
    177
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Octobre 2009
    Messages : 177
    Par défaut
    le code que je t'ai donné est du jsp donc. il contient les classes que tu auras besion.je vais me renseigner sur richfaces en attendant tu peux chercher de la fonctionnalité de chaque classe pour bien comprendre .
    tu peux afficher ta page xhtml !

  5. #5
    Membre averti
    Femme Profil pro
    Développeur Java
    Inscrit en
    Février 2010
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2010
    Messages : 45
    Par défaut
    Dans le code xhtml il n'y a pas grande chose, juste le display du résultat du traitement du fichier. Le tout est dans le code java.
    Je résume en version simple mon code.

    - Partie java:
    J'ai un bean qui interface avec du xhtml, il doit récupérer le pathname (le chemin du répertoire que précise l'utilisateur), et puis il ouvre un fichier se trouvant dans ce répertoire, ensuite il lit et n'affiche que certaines données (la partie traitement je met en commentaire car c'est juste pour illustrer le fonctionnement). La liste des données à afficher est retournée au xhtml pour afficher dans une dataTable (ici j'ai mis une liste de Integer).

    - Partie xhtml:
    Une dataTable de richFaces pour itérer ma liste d'Integer et ....
    La fameuse chose que je cherche .... un input du chemin que l'uti doit rentrer.
    J'ai mis là une input text que l'utilisateur doit taper à la mano !!! Pas top.
    (Et c'est juste cette ligne en rouge là que je veux changer).
    J'aimerais qu'il puisse faire "Parcourir "... (mais à priori tout le monde me dit que ce n'est pas possible de faire ça à cause des problèmes de sécurité.


    public class myFileBean {
    private String pathName = null;

    public void setPathName(String pathName) {
    this.pathName = pathName;
    }

    public String getPathName(){
    return this.pathName;
    }

    // Data loaded from the file that the name is given by the user
    private List<Integer> myData = null

    public List<Integer> getMyData() {
    myFile toto = new myFile(this.pathName);
    myData = toto.load();
    return myData;
    }
    }

    public class myFile extends File {
    private String pathName = null;

    public myFile(String arg0) {
    super(arg0);
    this.setPathName(arg0);
    }

    public List<Integer> load() throws Exception {
    File fd = new File(this.pathName+"the name");
    if (!fd.exists()) {
    logger.error("file doesn't exist : "+ this.pathName);
    return;
    }

    try {
    this.in = new BufferedInputStream(new FileInputStream(this.pathName));
    } catch (IOException e1) {
    e1.printStackTrace();
    }

    /* .... load the file and fill the List<Integer>
    List<Integer> myDataList = new ArrayList<Integer>();
    Integer myInteger <- this.in.read(....);
    myDataList.add (myInteger);
    */
    }
    }


    <?xml version='1.0' encoding='UTF-8' ?>
    <ui:composition xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:c="http://java.sun.com/jstl/core"
    xmlns:rich="http://richfaces.org/rich"
    xmlns:a4j="http://richfaces.org/a4j"
    xmlns:h="http://java.sun.com/jsf/html"
    template="/templates/template.xhtml">

    <ui:define name="body">
    <h:form id="body">
    <rich:tabPanel width="100%">
    <rich:tab label="#myFileBean.pathName}" width="100%">
    <h:panelGrid id="toto" columns="3" styleClass="gridPathName" columnClasses="gridPathNamecolumn">
    <h:outputText value="Name:" />
    <h:inputText value="#{myFileBean.pathName}" />
    <a4j:commandButton value="Open File" reRender="out" />
    </h:panelGrid>
    <h:panelGrid columns="2">
    <rich:dataTable id="out" columnClasses="top"
    bodyClass="inpanelBody" value="#{myFileBean.myData}" var="data">
    <rich:column label="index">
    <f:facet name="header">
    <h:outputText value="index" />
    </f:facet>
    <h:outputText value="#{data}" />
    </rich:column>
    </rich:dataTable>
    </h:panelGrid>
    </rich:tab>
    </rich:tabPanel>
    </h:form>
    </ui:define>
    </ui:composition>

  6. #6
    Membre averti
    Femme Profil pro
    Développeur Java
    Inscrit en
    Février 2010
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2010
    Messages : 45
    Par défaut
    En fait j'ajoute une explication : ce n'est pas vraiment une application web à proprement parler. C'est une application java qui offre une interface web pour les accès à distance, l'avantage c'est qu'on installe une seule fois sur le serveur de traitement et les utilisateurs peuvent accéder de n'importe où à travers le web.

Discussions similaires

  1. Réponses: 4
    Dernier message: 05/11/2014, 22h38
  2. Comment récupérer le path d'un fichier
    Par nhunhu dans le forum Développement Web en Java
    Réponses: 5
    Dernier message: 12/02/2010, 14h29
  3. [debutant][Fichier] Comment obtenir le path de mon fichier ?
    Par Soulsurfer dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 22/06/2004, 17h09

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