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 :

Upload d'un fichier avec jsp/servlet


Sujet :

Servlets/JSP Java

  1. #1
    Membre du Club
    Inscrit en
    Mars 2009
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 100
    Points : 48
    Points
    48
    Par défaut Upload d'un fichier avec jsp/servlet
    Salut tout le monde
    je désire faire l'upload d'un fichier dans un dossier dans le serveur (j'utilise eclipse/tomcat).
    Dand ma jsp j'ai le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <html>
      <body>
        <form enctype="multipart/form-data" action="MaServlet" method="post">
          <input type="hidden" name="MAX_FILE_SIZE" value="100000" />
          Transfère le fichier <input type="file" name="monfichier" />
          <input type="submit" />
        </form>
      </body>
    </html>
    J'ai installer les jar nécessaire pour l'upload d'un fichier,mais le probléme c'est que je ne sais pas qu'est ce que je devrais ecrire dans "MaServlet"
    Est ce que quelqu'un peut m'aider???
    merci d'avance

  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
    Sur le site de commons fileupload, on trouve ceci
    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
    // 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()) {
            processFormField(item);
        } else {
            processUploadedFile(item);
        }
    }

  3. #3
    Membre du Club
    Inscrit en
    Mars 2009
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 100
    Points : 48
    Points
    48
    Par défaut
    oué j'ai essayé plusieurs types de codes mais ça ne marche pas
    j'ai essayer finalement ce code là dans ma servlet:
    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
     
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
    {
      response.setContentType("text/html");
      String fileName=null;
      long sizeInBytes=0;
     
    	try { 
    		// Check that we have a file upload request
    		boolean isMultipart = ServletFileUpload.isMultipartContent(request);
    		if(isMultipart) 
    		{
    			// 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 items = upload.parseRequest(request);
    			// Process the uploaded items
    			Iterator iter = (Iterator) items.iterator();
    			while (iter.hasNext()) 
    				{
    				/* fetch an item from the iterator above */
    				FileItem item = (FileItem) iter.next();
    				if (!item.isFormField()) 
    				{
    				/* retrives name of the file uploaded from the client machine */ 
    				fileName = item.getName(); 
    				/* retrives size in byte of the file uploaded from the client machine */ 
    				sizeInBytes = item.getSize(); 
    				/* Create a new file on server machine */
    				File uploadedFile = new File("C:\\test.txt"); 
    				/* following statement writes to uploadedFile in single stroke */ 
    				try 
    				{
    				item.write(uploadedFile);
    				} 
    				catch (Exception e) {e.printStackTrace();} 
    				/* job done ! */
    				}
    				}
    System.out.println("success ......"+fileName+"... "+sizeInBytes+" uploaded...... ");
    			} 
    			else System.out.println("NOT a multipart content....... ");
    		} 
    		catch(FileUploadException e){System.out.println(e.getMessage());
    		}
    	}  	  	    
    }
    Mais il m'affiche l'erreur suivante:
    La méthode HTTP spécifiée n'est pas autorisée pour la ressource demandée (La méthode HTTP POST n''est pas supportée par cette URL).

  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
    c'est dans doPost qu'il faut mettre ton code, pas dans doGet!

  5. #5
    Membre du Club
    Inscrit en
    Mars 2009
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 100
    Points : 48
    Points
    48
    Par défaut
    ahh ouéé!!
    maintenant il m'affiche l'erreur suivante:
    java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream

  6. #6
    Membre du Club
    Inscrit en
    Mars 2009
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 100
    Points : 48
    Points
    48
    Par défaut
    j'ai corrigé l'erreur, elle vienne du fait que j'ai pas ajouté les bibliothéques commons.io
    Lorsque j'exécute le programme, il m'affiche
    success ......C:\fichier.doc... 30720 uploaded.
    C'est à dire qu'il a réussi à faire l'upload du fichier, mais le probléme c'est que je ne trouve pas dans quel dossier il est mis !!!
    merci d'avance

  7. #7
    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
    d'après ton code: C:\\test.txt

  8. #8
    Membre du Club
    Inscrit en
    Mars 2009
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 100
    Points : 48
    Points
    48
    Par défaut
    oué mais je ne trouve rien là
    j'ai essayer de l'enregistrer dans un dossier dans le serveur, j'ai crée un dossier "personne" dans le WebContent, puis j'ai mis
    [CODE][
    File uploadedFile = new File("/personne");
    /CODE]
    mais de meme ça ne marche pas
    est ce que ça devrai etre comme ça??? sinon y a t-il une solution pour faire l'enregistrement du fichier récupéré dans le serveur?
    merci d'avance

  9. #9
    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
    tu dois préciser le chemin complet de l'endroit où tu veux le sauver. Les spécification j2EE ne donne pas de valeur précise au répertoire courant. Donc quand tu fait un new File(), sans préciser de chemin complet, tu sais pas où ca va tomber.
    De plus new File("/personne") va référencer le fichier / dossier "personne" à la racine du filesystem (/ sous linux, racine du disque courant sous windows)

  10. #10
    Membre du Club
    Inscrit en
    Mars 2009
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 100
    Points : 48
    Points
    48
    Par défaut
    j'ai ajouté ce bout de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    /* Create a new file on server machine */
    File uploadedFile = new File(fileName); 
    uploadedFile = new File(BASE_DIRECTORY, uploadedFile.getName());
    et j'ai précisé mon chemin dans BASE_DIRECTORY, et ça va ça marche
    bonne journée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Upload une image et les données avec JSP/Servlet
    Par d.ayuk33 dans le forum Servlets/JSP
    Réponses: 0
    Dernier message: 06/12/2011, 20h13
  2. Upload fichier avec JSP
    Par clodo13 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 08/04/2011, 11h38
  3. upload d'un fichier avec les servlet/jsp
    Par khaledUSTHB dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 16/07/2007, 14h20
  4. download et upload des fichier avec JSP & mysql
    Par MSM_007 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 17/07/2006, 16h20
  5. Upload de fichier avec jsp
    Par fx2024 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 07/06/2006, 18h02

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