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 les données de formulaire avec "multipart/form-data"


Sujet :

Servlets/JSP Java

  1. #1
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    157
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 157
    Points : 67
    Points
    67
    Par défaut comment récupérer les données de formulaire avec "multipart/form-data"
    bonjours;

    je cherche depuis ce matin comment récupérer des champs de mon formulaire!!, ce dernier contient un fichier à uploader + des données.

    en effet, quand je fais request.getParameter("xxx") ça me renvoi null !!!!
    merci d'avance pour votre aide.

    ps: j'ai bien cherché sur le forum + google, rien de concluant.

  2. #2
    Membre éclairé Avatar de Lorantus
    Homme Profil pro
    Consultant développeur indépendant / Java/VB/C(++)/ObjectPal
    Inscrit en
    Août 2007
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant développeur indépendant / Java/VB/C(++)/ObjectPal

    Informations forums :
    Inscription : Août 2007
    Messages : 599
    Points : 882
    Points
    882
    Par défaut
    Il faut utiliser une API type uploadfile.

    Elle te permettra de parser le mutliform-data et d'extraire les données envoyés sous forme de tableau. Tous cela dans un doPost().

    Tu veux envoyer un fichier via de formulaire ?

  3. #3
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    157
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 157
    Points : 67
    Points
    67
    Par défaut
    merci pour la réponse , désolé de répondre si tard. voila j'ai trouvé la solution, c'est un peut du bricolage mais ça marche.
    je vous donne le code, je n'utilise aucune API

    récupération du fichier puis le stocker:
    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
    DataInputStream in = new DataInputStream(request.getInputStream());
    			//we are taking the length of Content type data
    			int formDataLength = request.getContentLength();
    			byte dataBytes[] = new byte[formDataLength];
    			int byteRead = 0;
    			int totalBytesRead = 0;
    			while (totalBytesRead < formDataLength)
    			{
    				byteRead = in.read(dataBytes, totalBytesRead, formDataLength);
    				totalBytesRead += byteRead;
    			}
    			String file = new String(dataBytes);
    			//for saving the file name
    			String saveFile="datafile";
    			int lastIndex = contentType.lastIndexOf("=");
    			String boundary = contentType.substring(lastIndex + 1,contentType.length());
    			int pos;
    			//extracting the index of file 
    			pos = file.indexOf("filename=\"");
    			pos = file.indexOf("\n", pos) + 1;
    			pos = file.indexOf("\n", pos) + 1;
    			pos = file.indexOf("\n", pos) + 1;
    			int boundaryLocation = file.indexOf(boundary, pos) - 4;
    			int startPos = ((file.substring(0, pos)).getBytes()).length;
    			int endPos = ((file.substring(0, boundaryLocation)).getBytes()).length;
     
    			// creating a new file with the same name and writing the content in new file
     
    			FileOutputStream fileOut = new FileOutputStream(saveFile);
    			fileOut.write(dataBytes, startPos, (endPos - startPos));
    			fileOut.flush();
    			fileOut.close();
    une fonction pour récupérer un une variable, elle a besoin de sont nom comme argument, et de l'objet file(ci-dessus) qui est une chaine de caractères(elle contient le fichier + les paramètres) affichez la pour comprendre sont contenu.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public String param(String chaine, String name)
    	{
    		int pos=chaine.indexOf("Content-Disposition: form-data; name=\""+name+"\"");
    		pos=chaine.indexOf("\n", pos+1);
    		pos=chaine.indexOf("\n", pos+1);
    		pos++;
    		int fin=chaine.indexOf("\n", pos);
     
    		return chaine.substring(pos, fin-1);
    	}
    sur ceux je vous souhaite bon courage.

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

Discussions similaires

  1. Comment récupérer les données de formulaires
    Par pracede2005 dans le forum Struts 2
    Réponses: 1
    Dernier message: 03/09/2012, 15h30
  2. Comment récupérer les données de mon formulaire?
    Par kaselander dans le forum Langage
    Réponses: 27
    Dernier message: 02/03/2009, 17h03
  3. comment récupérer les données d'une paramètre avec cplex
    Par debalgo dans le forum Intelligence artificielle
    Réponses: 1
    Dernier message: 18/06/2008, 13h32
  4. Réponses: 6
    Dernier message: 24/01/2007, 11h29
  5. Réponses: 3
    Dernier message: 06/07/2006, 19h49

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