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 :

[Reseau]Copie de fichier via le réseau


Sujet :

Servlets/JSP Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2005
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 24
    Points : 6
    Points
    6
    Par défaut [Reseau]Copie de fichier via le réseau
    Bonjour à tous,

    J'ai un petit problème de copir de fichier, j'espère que vous pourrez m'aider...
    Voilà, je fais un site intranet en html/jsp et j'ai une rubrique documentation où l'on peut rajouter des documents. L'ajout du doc se fait via un formulaire, qui demande le nom du doc et ya un browser qui permet d'aller chercher le doc sur son ordi (avec le bouton parcourir).
    Moi je veux faire une copie du document, donc de ce fichier, dans un espace de stockage réservé sur le serveur. Le problème est que, par exemple, si dans le champ où je mets le chemin du document, j'ai C:\maison\fichier.txt, le serveur va aller le chercher sur son disque à lui C:\maison\fichier.txt et il ne va donc pas trouver le fichier et donc il ne pourra pas faire de copie. Je ne sais pas comment faire pour résoudre ce problème.
    Quand je faisais mon site en local sur mon ordinateur, tout se passait bien, ça marchait nickel mais là, ça marche plus, ce qui est tout à fait normal mais je ne vois pas de solutions... helllpppp!!!!



    [Modéré par Didier] : ajout de tag dans le titre - Les règles du forum Java

  2. #2
    Membre habitué Avatar de Mathieu.Nanoux
    Étudiant
    Inscrit en
    Février 2004
    Messages
    166
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 166
    Points : 137
    Points
    137
    Par défaut
    Salut,

    j'ai fait une fois un transfert de fichier sur un site. Pour cela, j'avais utilisé une applet et je communiquais le fichier via le protocol ftp sur mon serveur. Ca peut être une solution si tu as un serveur FTP installé.

  3. #3
    Futur Membre du Club
    Inscrit en
    Juin 2005
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 24
    Points : 6
    Points
    6
    Par défaut
    alors là honnêtement, je comprends pas grand chose... je suis débutante... tu pourrais m'expliquer un peu plus stp?

  4. #4
    Membre averti Avatar de guignol
    Inscrit en
    Mai 2002
    Messages
    309
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 309
    Points : 339
    Points
    339
    Par défaut
    Citation Envoyé par liichiii
    alors là honnêtement, je comprends pas grand chose... je suis débutante... tu pourrais m'expliquer un peu plus stp?
    Je te conseille de faire une recherche sur le forum, tu trouveras la réponse pour faire un upload de fichier sur ton site. Un exemple de résultat : http://www.developpez.net/forums/vie...upload+fichier

    Fais une recherche sur le forum J2EE avec les mots clés upload et fichier, tu trouveras facilement

    Le recours à FTP n'est pas obligatoire

  5. #5
    Futur Membre du Club
    Inscrit en
    Juin 2005
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 24
    Points : 6
    Points
    6
    Par défaut
    merci pour le conseil que tu m'as donné. Je suis allée sur le lien que tu m'as filé et j'ai le même probleme que le gars!! Il trouve pas org.apache.commons.fileupload.*. Ma plate forme de dev c Netbeans et le serveur jboss. Tu sais koment faire?

  6. #6
    Membre averti Avatar de guignol
    Inscrit en
    Mai 2002
    Messages
    309
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 309
    Points : 339
    Points
    339
    Par défaut
    Citation Envoyé par liichiii
    merci pour le conseil que tu m'as donné. Je suis allée sur le lien que tu m'as filé et j'ai le même probleme que le gars!! Il trouve pas org.apache.commons.fileupload.*. Ma plate forme de dev c Netbeans et le serveur jboss. Tu sais koment faire?
    heeuu non pas trop désolé


    Tu peux toujours vérifier tous les package importés, ton classpath etc.

    On va voir si quelqu'un est plus éclairé que moi

  7. #7
    Membre habitué Avatar de Mathieu.Nanoux
    Étudiant
    Inscrit en
    Février 2004
    Messages
    166
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 166
    Points : 137
    Points
    137
    Par défaut
    c'est vrai qu'il y a d'autre moyen que le ftp ;-).

    J'ai regardé aussi le lien que guignol a donné. Cela m'a interressé. Ca à l'air plus rapide à mettre en place.

    J'ai été voir sur jakarta project, et j'ai trouvé un lien qui correspond à cette partie.

    http://jakarta.apache.org/commons/fileupload/

    et l'apidoc :

    http://jakarta.apache.org/commons/fi...e-summary.html

    J'espere que ca t'aidera.

  8. #8
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Points : 1 996
    Points
    1 996
    Par défaut
    Sur ta page HTLM/JSP, il faut utiliser la balise input du type file.

    Ensuite utiliser le package org.apache.commons.fileupload, pour récupérer le contenu du fichier.

  9. #9
    Membre averti Avatar de guignol
    Inscrit en
    Mai 2002
    Messages
    309
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 309
    Points : 339
    Points
    339
    Par défaut
    Citation Envoyé par jowo
    Sur ta page HTLM/JSP, il faut utiliser la balise input du type file.

    Ensuite utiliser le package org.apache.commons.fileupload, pour récupérer le contenu du fichier.

    Elle sait cela, mais comme elle le dit elle même :

    Je suis allée sur le lien que tu m'as filé et j'ai le même probleme que le gars!! Il trouve pas org.apache.commons.fileupload.*.

  10. #10
    Nouveau Candidat au Club
    Inscrit en
    Août 2005
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Salut,

    J'ai bossé sur un module d'upload de fichier vers serveur Jonas y'a pas longtemps (avec UploadServlet et MultiparRequestParser de OGNL Technology), poste ton code je vais voir si je peux t'aider.

  11. #11
    Futur Membre du Club
    Inscrit en
    Juin 2005
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 24
    Points : 6
    Points
    6
    Par défaut
    le serveur c jboss/tomcat et je suis pas sure que les packages apache, il les voit. Mais je vais te poster mon code, c très gentil ta proposition. Dans la boite où je suis ya pas internet sur les postes sur lesquels on travaille, il y a seulement un poste internet pour toute l'équipe alors jreviens, jvais chercher mon code!!!

  12. #12
    Futur Membre du Club
    Inscrit en
    Juin 2005
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 24
    Points : 6
    Points
    6
    Par défaut
    Voici mon fichier insertDoc.jsp (simplifié)
    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
     
    <%@page language="java" import="java.sql.*, java.io.*, java.lang.*, java.util.*, ihmos.gestion.*, ihmos.connection.*, ihmos.recup.*, ihmos.ajout.*"%>
    <jsp:useBean id="vs" scope="session" class="ihmos.gestion.varSession" />
     
    <html>
        <head>
            <title>InsertDoc</title>
            <link rel="stylesheet" type="text/css" href="/ihm-os/style.css">
        </head>
        <body>
     
            <%-- <jsp:useBean id="beanInstanceName" scope="session" class="beanPackage.BeanClassName" /> --%>
            <%-- <jsp:getProperty name="beanInstanceName"  property="propertyName" /> --%>
     
             <H1>INSERER UN NOUVEAU DOCUMENT</H1>
     
            <%  String nomDoc = "";
                String lien = "";
                String msgErreur = "";
                
                if (request.getParameter("nomDoc") != null)
                    {
                        nomDoc = request.getParameter("nomDoc");
                    }       
                if (request.getParameter("lien") != null)
                    {
                        lien = request.getParameter("lien");
                    }%>
     
     
     
            <!-- s'il y a une erreur, on récupère le message d'erreur et on l'affiche -->
                <% if(request.getParameter("msgErreur")!=null)
                    {
                        msgErreur = request.getParameter("msgErreur");%>
                        <FONT class="msgErreur"><%=msgErreur%></FONT>
                        <BR> 
                  <%} %>
     
            <table align=center>
                <FORM ACTION="verifInsertDoc.jsp" METHOD=POST enctype="multipart/form-data">
                <tr><td>
                <table>          
                <tr><td>Catégorie du document:  </td></tr>
                <tr><td>Entrez le nom du document:</td>
                    <td><INPUT TYPE="TEXT" SIZE=30 NAME="nomDoc" value="<%=nomDoc%>"></td>
                </tr>    
                <tr><td class="nomChamp">Entrez le lien du document (*):</td>
                    <td><INPUT TYPE="FILE" SIZE=60 NAME="lien" value="<%=lien%>"></td>
                </tr>            
                <tr><td align=center><INPUT TYPE="SUBMIT" VALUE="Envoyer"></td>
                    <td align=center><INPUT TYPE="RESET" VALUE="Annuler"></td>
                </tr>                        
                </table>
     
                </td></tr>
                </FORM>
            </table>
     
        </body>
    </html>
    *******************************************************************************************************

    Voici maintenant mon verifInsertDoc.jsp (simplifié aussi):

    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
     
    <%@page language="java" import="java.sql.*, java.io.*, java.lang.*, java.util.*, ihmos.gestion.*, ihmos.connection.*, ihmos.recup.*, ihmos.ajout.*, ihmos.modif.*, org.apache.commons.fileupload.*"%>
    <jsp:useBean id="vs" scope="session" class="ihmos.gestion.varSession" />
     
    <html>
        <head><title>verifInsertDoc</title></head>
     
     
        <body>
     
            <%-- <jsp:useBean id="beanInstanceName" scope="session" class="beanPackage.BeanClassName" /> --%>
            <%-- <jsp:getProperty name="beanInstanceName"  property="propertyName" /> --%>
     
     
            <%  String nomDoc = request.getParameter("nomDoc");
                String lien = request.getParameter("lien");            
                String msgErreur = "";
                
                boolean erreur = false;
                
                if (nomDoc.equals(""))
                    {
                        erreur = true;
                        msgErreur = "Erreur! Vous n'avez pas précisé le nom du document";
                    }
                else if (lien.equals(""))
                    {
                        erreur = true;
                        msgErreur = "Erreur! Vous n'avez pas précisé le lien vers le document";
                    }
                
                if (erreur == true)
                    {%>
                        //s'il y a une erreur, on renvoie vers le formulaire
                        <jsp:forward page="OS_insertDoc.jsp">
                        <jsp:param name="msgErreur" value="<%=msgErreur%>" />
                        <jsp:param name="nomDoc" value="<%=nomDoc%>" />
                        <jsp:param name="lien" value="<%=lien%>" />
                        </jsp:forward>
     
                <%  }
                else //tous les champs sont bien remplis
                    {
         
                        UploadFile.doPost(req, res);
                    }%>
        </body>
    </html>
    *******************************************************************************************************

    Voici le UploadFile que j'ai trouvé sur internet(je ne sais pas ce que je dois mettre en argument):

    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
     
    package ihmos.gestion;
     
    import java.io.File;
    import java.io.IOException;
    import java.util.Iterator;
    import java.util.List;
     
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    import org.apache.commons.fileupload.DiskFileUpload;
    import org.apache.commons.fileupload.FileItem;
    import org.apache.commons.fileupload.FileItemFactory;
    import org.apache.commons.fileupload.FileUpload;
    import org.apache.commons.fileupload.FileUploadException;
     
     
    /**
    * @author sm23772
    *
    * TODO To change the template for this generated type comment go to
    * Window - Preferences - Java - Code Style - Code Templates
    */
    public class UploadFile extends HttpServlet {
     
        public void doPost(HttpServletRequest req,HttpServletResponse res)
        {
            try
            {
     
                FileUpload fup=new FileUpload();
                boolean isMultipart = FileUpload.isMultipartContent(req);
                // Create a new file upload handler
                System.out.println(isMultipart);
                DiskFileUpload upload = new DiskFileUpload();
     
                // Parse the request
                List /* FileItem */ items = upload.parseRequest(req);
     
                Iterator iter = items.iterator();
                while (iter.hasNext()) 
                {
     
                    FileItem item = (FileItem) iter.next();
     
                    if (item.isFormField()) 
                    {
                        System.out.println("its a field");
                    } 
                    else 
                    {
                        System.out.println("its a file");
                        System.out.println(item.getName());
                        File cfile=new File(item.getName());
                        File tosave=new File(getServletContext().getRealPath("/"),cfile.getName());
                        item.write(tosave);
                    }
                }
     
            }
            catch(Exception e)
            {
                System.out.println(e);
            }
        }
    }
    *******************************************************************************************************

    Voilà voilà j'espère que tu pourras m'aider parce que là, je sais pas du tout comment faire.

    Merci d'avance

    Liichiii

  13. #13
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Points : 1 996
    Points
    1 996
    Par défaut
    voici un exemple de code (pas testé):
    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
    <%@page language="java"
            import="java.sql.*,
                    java.io.*,
                    java.lang.*,
                    java.util.*,
                    ihmos.gestion.*,
                    ihmos.connection.*,
                    ihmos.recup.*,
                    ihmos.ajout.*,
                    ihmos.modif.*,
                    org.apache.commons.fileupload.*"
    %>
     
    <jsp:useBean id="vs" scope="session" class="ihmos.gestion.varSession" /> 
    <jsp:useBean id="beanInstanceName" scope="session" class="beanPackage.BeanClassName" /> 
    <jsp:getProperty name="beanInstanceName"  property="propertyName" /> 
     
    <%
        String msgErreur = null;
        ServletFileUploadWrapper  fup =new ServletFileUploadWrapper ();
        if (!FileUpload.isMultipartContent(this) {
             // @TODO: Lève l'exception: Attends un contenu Multi-Part
        }
        String nomDoc = fup.getParameter("nomDoc");
        /*
            Pourquoi lien? Il n'y aura pas de lien entre le fichier du poste client et
            le serveur.
        */
        FileItem doc = getFileParameter("lien");
        
        if (nomDoc == null && "".equals(nomDoc) {
            msgErreur = "Erreur! Vous n'avez pas précisé le nom du document";
        }
        else if (doc == null) {
            msgErreur = "Erreur! Vous n'avez pas précisé le lien vers le document"; 
        }
        
        if (msgErreur!= null) {
            %> 
            //s'il y a une erreur, on renvoie vers le formulaire 
            <jsp:forward page="OS_insertDoc.jsp"> 
                <jsp:param name="msgErreur" value="<%=msgErreur%>" /> 
                <jsp:param name="nomDoc" value="<%=nomDoc%>" /> 
                <jsp:param name="lien" value="<%=lien%>" /> 
            </jsp:forward> 
            <%
        }
        /*
            Sauve le document avec le nom du fichier client.
            
        */
        File cfile = new File(doc.getName()); 
        File tosave = new File(getServletContext().getRealPath("/"),cfile.getName()); 
        doc.write(tosave);%>
     
    <html> 
        <head><title>verifInsertDoc</title></head> 
     
     
        <body>
            Votre document est sauvé.
        </body>
    </html>

  14. #14
    Futur Membre du Club
    Inscrit en
    Juin 2005
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 24
    Points : 6
    Points
    6
    Par défaut
    ça marche pas///
    C un serveur tomcat alors le org.apache.commons.fileupload.* pose des problèmes. Je suis un peu dans la m... là, mon stage finit vendredi et ça ne marche toujours pas!!! S'il vous plait, aidez moi!

  15. #15
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Points : 1 996
    Points
    1 996
    Par défaut
    As-tu installé le package org.apache.commons.fileupload (fichier .jar ou .zip) sur ton serveur TOMCAT?

    Je crois qu'il faut l'installer dans le réperstoire WEB-INF/lib (plus trop sûr).

    En plus, si tu utilises une IDE, il faut peut être l'installer sur ta machine.

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/05/2007, 08h27
  2. Réponses: 2
    Dernier message: 22/03/2007, 13h25
  3. Interdire la copie des fichiers partagés en réseau
    Par Essilife dans le forum Administration
    Réponses: 4
    Dernier message: 16/01/2006, 23h46
  4. [C#] Copie de fichier via l'API
    Par slyv dans le forum Windows Forms
    Réponses: 5
    Dernier message: 20/12/2004, 22h39
  5. [C#] Copie de fichier via l'API
    Par slyv dans le forum Windows
    Réponses: 5
    Dernier message: 20/12/2004, 22h35

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