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 de fichier avec FileUpload


Sujet :

Servlets/JSP Java

  1. #1
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2010
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2010
    Messages : 62
    Points : 125
    Points
    125
    Par défaut Upload de fichier avec FileUpload
    Bonjour tout le monde

    je suis face à problème que je n'arrive à résoudre. Débutant en jsp j'essaie d'uploader un fichier à partir d'un formulaire vers une servlet. Après quelques recherches je tombe sur FileUpload.

    j'essaie le code suivant.
    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
     
    DiskFileItemFactory factory= new DiskFileItemFactory();
    		ServletFileUpload upload = new ServletFileUpload(factory);
    		List items=null;
    		try {
    			 items=upload.parseRequest(request);
    			 Iterator i=items.iterator();
    				while(i.hasNext()){
    					FileItem item=(FileItem)i.next();
    					if(!item.isFormField()){																
    						item.write(new File(item.getName()));	
    						System.out.println(item.getName());	
    					}
    				}
    		} catch (Exception e) {e.printStackTrace();}
    Je n'ai aucune erreur qui s'affiche et je vais dans mon dossier de projet rien n'a été uploadé.

    Un coup de main s'il vous plait pour me dépanner

  2. #2
    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
    Peux-tu montrer le source de ta page JSP ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2010
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2010
    Messages : 62
    Points : 125
    Points
    125
    Par défaut
    merci de l'interêt
    j'ai juste mis un formulaire pour essayer, l'upload final doit être fait à partir d'un interface flash

    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
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
    </head>
    <body>
    	<form action="" method="post" enctype="multipart/form-data">
    		<input type="file" name="image"/>
    		<input type="submit"/>
    	</form>
    </body>
    </html>

  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
    votre action devrais pointer vers la servlet et pas dans le vide.

    Etes vous sur que flash fera du multipart ?

  5. #5
    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
    En complément de tchize_, il faut également référencer (si ce n'est fait) la servlet dans le fichier web.xml.

    Pour ce qui est de flash, je suppose qu'il existe un composant pour l'upload... quel intérêt de la faire autrement du coup ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2010
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2010
    Messages : 62
    Points : 125
    Points
    125
    Par défaut Upload de fichier avec fileUpload
    Merci de vos reponse.

    Je ne crois pas que les problèmes est lié à l'action du formulaire parce que la page jsp est appelée par la même servlet qui traite le formulaire.
    En plus le code
    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
       DiskFileItemFactory factory= new DiskFileItemFactory();
    		ServletFileUpload upload = new ServletFileUpload(factory);
    		List items=null;
    		try {
    			 items=upload.parseRequest(request);
    			 Iterator i=items.iterator();
    				while(i.hasNext()){
    					FileItem item=(FileItem)i.next();
    					if(!item.isFormField()){																
    						item.write(new File(item.getName()));	
    						System.out.println(item.getName());	
    					}
    				}
    		} catch (Exception e) {e.printStackTrace();}
    le System.out.println(item.getName()) afficher bien le nom du fichier.

  7. #7
    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
    Attention, item.getName() ne renvoie pas la même chose en fonction du navigateur source, avec IE, il va te donner le path complet du fichier source, ce qui risque de ne pas fonctionner sur ton serveur... avec Firefox, tu n'auras que le nom du fichier
    Firefox : BaracaPanierCME.csv
    IE : D:\Imports_Expression_Besoin\BaracaPanierCME.csv
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2010
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2010
    Messages : 62
    Points : 125
    Points
    125
    Par défaut Upload de fichier avec fileUpload
    que me proposer vous de faire en solution en problème. je veux juste arriver à uploader des fichiers sur mon serveur à partir d'une jsp. Que ce soit avec fileUpload ou autre

  9. #9
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2010
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2010
    Messages : 62
    Points : 125
    Points
    125
    Par défaut Upload de fichier avec fileUpload
    Merci à tous

    En fait le fichier est uploader dans le dossier d'éclipse, chose que je ne comprends pas d'ailleur.

  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
    La solution est évidente il me semble, il suffit de chercher la partie nom dans le résultat de item.getName() (substring à partir de la dernière position de "\" ou "/" sinon 0)...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  11. #11
    Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2009
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 44
    Points : 50
    Points
    50
    Par défaut
    Bonjour

    J'ai écrit il y a quelque temps une méthode pour l'upload qui prend le nom après le dernier / et qui enregistre le fichier dans un nom que je précise. Peut être ça pourrait t'aider:

    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
    public String buttonUpload_action() {
     
           // Process the upload button click action. 
            UploadedFile uploadedFile = fileUpload.getUploadedFile();
            String uploadedFileName = uploadedFile.getOriginalName();
            // Some browsers return complete path name, some don't
            // Make sure we only have the file name
            // First, try forward slash
            int index = uploadedFileName.lastIndexOf('/');
            String justFileName;
            if ( index >= 0) {
                justFileName = uploadedFileName.substring( index + 1 );[/INDENT]
            } else {
                // Try backslash
                index = uploadedFileName.lastIndexOf('\\');
                if (index >= 0) {
                    [INDENT]justFileName = uploadedFileName.substring( index + 1 );
                } else {
                    // No forward or back slashes
                    justFileName = uploadedFileName;
                }
            }
            Long uploadedFileSize = new Long(uploadedFile.getSize());
            String uploadedFileType = uploadedFile.getContentType();
            if ( uploadedFileType.equals("image/jpeg")
            || uploadedFileType.equals("image/gif")
            || uploadedFileType.equals("application/vnd.ms-excel")) {
                try {
                    String toSave = getSessionBean1().fabriqueNomFichierUpload(justFileName); //fabriqueNomFichierUpload pour générer un nom de fichier 
                    File file = new File(this.realImageFilePath + File.separatorChar + toSave); //realImageFilePath est le répertoire de mon serveur où j'enregistre
                    uploadedFile.write(file);                               
                    info("You succefully uploaded the file: " + justFileName);
                } catch (Exception ex) {
                    error("Cannot upload file: " + justFileName);
                }
            } else {
                error("You must upload a XLS(excel below 2003), JPEG,or GIF file.");
                new File(this.realImageFilePath).delete();
            }
            return null;
        }

Discussions similaires

  1. IE - Upload de fichier avec JQuery fileupload (blueimp)
    Par tidus_6_9_2 dans le forum jQuery
    Réponses: 3
    Dernier message: 30/11/2012, 11h49
  2. probleme upload de fichier avec FileUpload
    Par Amrouch14 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 16/04/2008, 18h53
  3. [2.0] uploader un fichier avec FileUpload
    Par cortex024 dans le forum ASP.NET
    Réponses: 5
    Dernier message: 16/03/2007, 15h14
  4. Réponses: 3
    Dernier message: 08/05/2006, 23h31
  5. [Upload] Upload de fichier avec un script PHP
    Par largolgd dans le forum Langage
    Réponses: 7
    Dernier message: 23/04/2006, 15h21

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