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 :

Problème de jsp avec un <form>


Sujet :

Servlets/JSP Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 33
    Points : 23
    Points
    23
    Par défaut Problème de jsp avec un <form>
    Bonjour tout le monde !
    En fait voila, j'ai un problème qui consiste en l'upload d'un fichier à partir d'une jsp. Jusque la aucun problème ca marche nickel (J'utilise FileUpload).
    Alors j'ai bien sur du définir un formulaire avec enctype="multipart/form-data".

    Mais alors là j'ai un problème ... étant donné cette propriété du formulaire, si je veux récupérer d'autres paramètres en même temps ben ca ne marche pas !

    Pourquoi je voudrais récupérer d'autres paramètres ? parce que j'utilise cette page à partir de plusieurs autres et bon j'aimerais passer par paramètre par exemple la taille max du fichier à importer, son type ... enfin voila si qqun à déjà eu le cas, je suis tout ouïe

    Merci d'avance

  2. #2
    Membre expérimenté Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Points : 1 371
    Points
    1 371
    Par défaut
    Comment ca tu veux récuperer d'autres parametres?

    Tu n'arrives pas à recuperer une valeur qui est dans ta form?
    Ou tu n'arrives pas à recuperer un parametre (qui est dans la barre d'adresse)?
    Ou un attribute?
    Une solution a été apporté pour résoudre votre problème alors vous aussi faites en profitez les autres grâce au tag qui se trouve tout en bas de la page....

    Merci de ne pas utiliser les messages privés pour un problème sauf si je vous l'ai explicitement demandé.

    -- Maxf1 --

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 33
    Points : 23
    Points
    23
    Par défaut
    ben oui, à cause du enctype="multipart/form-data".

    au départ, lorsque j'ouvre ma page pop-up, je lui envoie deux paramètres (le type de fichier et la taille max par exemple).
    Comme il n'y a pas encore de fichier à importer, le navigateur ne fait pas la fonction d'import ... ensuite l'utilisateur encode le fichier qu'il veut importer dans un <INPUT Type="file">.

    Ensuite, il clique sur un bouton (submit) et ainsi étant donné qu'il y a un fichier à importer, il exécute le java qui importe le fichier... cependant les deux autres paramètres sont remplacé par le fichier balancé à la page et ils deviennent null ... ca fait que je n'ai plus les valeurs que j'avaient au lancement de la popup ...

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Probleme formulaire Upload JSP enctype, post
    Bonjour tout le monde,
    malheuresement, j'ai le meme probleme,
    en utilisant aussi FileUpload, le fait de rajouter enctype="multipart/form-data" dans la balise <form > me met mes autres variables a null apres validation du submit, ce qui m'empeche de valider mon formulaire et donc de continuer le traitement.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 33
    Points : 23
    Points
    23
    Par défaut
    ahhh ca fait plaisir de voir qu'on est pas seul face à un tel problème ... et quoi ? z'aller pas me dire qui n'existe pas qqchose pour passer un problème comme ca ... ou alors une espèce de combine, je ne sais pas moi ...

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Bah écoute, je suis dessus, j'essaye en vain de garder mes variable POST,
    pour le moment, la seule solution, c'est de faire 2 formulaires, qui comme pour toi ne nous arrange pas.
    Un problème de taille de fichier envoyé pourrait être à l'origine de ce problème,
    mais j'en doute, car quand j'enlève le enctype, ca fonctionne, je recupère mes variable POST, mais pas d'upload
    Bref, affaire à suivre ..

    Des idées pour nous aider SVP.

    d'avance merci !

  7. #7
    Membre expérimenté

    Homme Profil pro
    Senior Développeur JEE
    Inscrit en
    Avril 2002
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Senior Développeur JEE
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2002
    Messages : 795
    Points : 1 660
    Points
    1 660
    Par défaut
    Juste une question.

    Comment faites-vous pour récupérer vos paramètres??
    Langages : Java, SQL
    Outils : Eclipse, Intellij
    SGBD : Oracle, PostgreSQL
    Mes Articles

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 33
    Points : 23
    Points
    23
    Par défaut
    boosy a dis :
    Bah écoute, je suis dessus, j'essaye en vain de garder mes variable POST,
    pour le moment, la seule solution, c'est de faire 2 formulaires, qui comme pour toi ne nous arrange pas.
    Ben voila c ce que je pensais aussi faire ... mais en effet ca ne m'arrange pas

    Stessy a dis :
    Juste une question.

    Comment faites-vous pour récupérer vos paramètres??
    Ben en fait moi lors du premier lancement de la page, je passe en paramètre les paramètres qui me faut et je les place directement dans des <input> en hidden ... (ils sont bien sur disposé dans la <form>) et lorsque cette page est validée (avec un <button> submit) les paramètres sont renvoyés directement à la page ... mais comme l'utilisateur à choisi sont fichier (et donc à cause de l'enctype="multipart/form-data"), je perd ces paramètres à la place du fichier à uploader via le code java ...

    Merci encore d'avance

  9. #9
    Membre expérimenté Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Points : 1 371
    Points
    1 371
    Par défaut
    Pourrais-tu mettre ton code de la jsp?
    Car moi je le fais en struts et ca passe nickel. Donc je ne pense pas que ca vienne du file, ou bien peut-etre un petit oubli.
    Une solution a été apporté pour résoudre votre problème alors vous aussi faites en profitez les autres grâce au tag qui se trouve tout en bas de la page....

    Merci de ne pas utiliser les messages privés pour un problème sauf si je vous l'ai explicitement demandé.

    -- Maxf1 --

  10. #10
    Membre expérimenté

    Homme Profil pro
    Senior Développeur JEE
    Inscrit en
    Avril 2002
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Senior Développeur JEE
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2002
    Messages : 795
    Points : 1 660
    Points
    1 660
    Par défaut
    Ce qui m'interesse c'est de savoir comment tu récupères les paramètres dans la servlet ou la 2è jsp.

    Quel code utilises-tu??

    Langages : Java, SQL
    Outils : Eclipse, Intellij
    SGBD : Oracle, PostgreSQL
    Mes Articles

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 33
    Points : 23
    Points
    23
    Par défaut
    Voila 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
    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
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    <%@ page contentType="text/html; charset=iso-8859-1" 
    	language="java" 
    	errorPage="error.jsp"
    	import="java.util.*"
    	import="java.lang.*"
    	import="java.text.*"
    	import="java.io.File"
    	import="com.exception.*"
    	import="com.utils.fileupload.*"
    %>
    <%
            String strMaxSizeFile = (request.getParameter("maxfilesize")!= null) ? request.getParameter("maxfilesize") : "";
            //System.out.println("str->"+strMaxSizeFile);
            int maxSizeFile = (strMaxSizeFile != "") ? (new Integer(strMaxSizeFile)).intValue() : 0;
            System.out.println("int-> "+maxSizeFile);
            
            boolean isTransfered = false, isOutSize = false;
            boolean isMultipart = FileUpload.isMultipartContent(request);
            String strFichier = "";
            if(!isMultipart){
                    //System.out.println("La requête n'est pas multipart !");
            }
            else
            {       
                    DiskFileUpload upload = new DiskFileUpload();
                    List items = upload.parseRequest(request);
                    Iterator itr = items.iterator();
                    
                    while(itr.hasNext()){
                            FileItem item = (FileItem) itr.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());
                                    File savedFile = new File(getServletContext().getRealPath("\\")+"upload\\", fullFile.getName());
                                    //File savedFile = new File("C:\\temp\\ffa\\", fullFile.getName());
                                    //System.out.println("File : "+getServletContext().getRealPath("\\")+"upload\\"+" ----- "+fullFile.getName());
                                    //System.out.println("File : "+"C:\\temp\\ffa\\"+" ----- "+fullFile.getName());
                                    if(fullFile.length()<maxSizeFile)
                                    {
                                            item.write(savedFile);
                                            isTransfered = true;
                                            strFichier = savedFile.getAbsolutePath().replaceAll("\\\\","\\\\\\\\");
                                    }
                                    else
                                            isOutSize = true;
                            }
                    }
            }
            
            String typeFich = (request.getParameter("type")!= null) ? request.getParameter("type") : "";
    %>
    <html>
    	<head>
    		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    	</head>
    	<body class="bodyframe" height="100%">	
    		<CENTER><br><br/><h1>Chargement</h1></CENTER>
    		<form name="MAIN" action="./formulaireFileUpload.jsp" method="post" enctype="multipart/form-data">
    			<CENTER><table border="0" width="85%">
    				<%if(isOutSize)
                                    {
                                    %>
    					<CENTER><h3>Le fichier que vous désirez charger est trop volumineux, veuillez en sélectionner un autre</h3></CENTER>
    				<%
                                    }
                                    
                                    if(!isTransfered)
                                    {
                                    %>
    					<tr>
    						<td class="table4">
    							&nbsp;&nbsp;<%=typeFich%> :
    						</td>
    						<td class="table4">
    							<INPUT type="text" name="type" value="<%=typeFich%>">
    							<INPUT type="text" name="maxfilesize" value="<%=maxSizeFile %>">
    							<INPUT type="file" name="fichier" size="30" accept="image/*" value="<%=strFichier %>">
    						</td>
    					</tr>
    					<tr>
    						<td colspan=2>
    							<CENTER><button type="submit" name="loadFile">Charger</button></CENTER>
    						</td>
    					</tr>
    				<%
                                    } else {
                                    %>
    					<tr>
    						<td colspan=2>
    							<CENTER><br/><h3>Le transfert <%=typeFich %> a bien été accompli</h3>
    							<button value="Retour" onClick="window.opener.document.MAIN.fichier.value='<%= strFichier %>';window.close();">Valider</button></CENTER>
    						</td>
    					</tr>				
    				<%
                                    }
                                    %>
    			</table></CENTER>
    		</form>
    	</body>
    </html>

    Stessy a dis :
    Ce qui m'interesse c'est de savoir comment tu récupères les paramètres dans la servlet ou la 2è jsp.

    Quel code utilises-tu??
    A ce niveau la comme je l'ai dis plus haut, j'ai deux <input> en hidden (qui sont ici en text pour voir ce qu'ils contiennent) qui sont appelés comme les paramètres en entrée de la page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <INPUT type="text" name="type" value="<%=typeFich%>">
    <INPUT type="text" name="maxfilesize" value="<%=maxSizeFile %>">
    Et donc étant valider lors du clic sur le boutton validé, il sont rebalancé en paramètre à la page ... normalement dumoins parce que ce j'ai à la place, c le fichier ... ce qui n'est pas plus mal .. j'aime autant avoir le fichier que les deux autres paramètres ... mais si je pouvais avoir le tout, ca serais autant

  12. #12
    Membre expérimenté

    Homme Profil pro
    Senior Développeur JEE
    Inscrit en
    Avril 2002
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Senior Développeur JEE
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2002
    Messages : 795
    Points : 1 660
    Points
    1 660
    Par défaut
    Ah ben voilà le problème.

    Tu dois traiter tes paramètres de la même manière que le paramètre de ton input type="file"

    dans la boucle while(itr.hasNext())

    tu fais un test dans la boucle pour voir si il trouve ton paramètre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if(item.getFieldName().equals("type"))
    {String type = item.getString();}
    idem pour l'autre paramètre.

    Voilà.

    Normalement cela devrait fonctionner beaucoup mieux.

    Bonne chance
    Langages : Java, SQL
    Outils : Eclipse, Intellij
    SGBD : Oracle, PostgreSQL
    Mes Articles

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 33
    Points : 23
    Points
    23
    Par défaut
    ahhhh excelent !!!!

    en fait oui ct une erreur tout con quoi ... arf comme ca, ca donne un exemple à ceux qui voudront le faire plus tard

    en tout cas merci bien pour votre aide !

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

Discussions similaires

  1. Problème page JSP avec nombreuses images
    Par lordmyko dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 17/05/2014, 19h32
  2. [Débutant] Problème handling JSP avec Spring
    Par toufik135 dans le forum Spring
    Réponses: 0
    Dernier message: 21/12/2013, 04h56
  3. Problème Page .JSP avec Struts
    Par bihakia89 dans le forum Struts 1
    Réponses: 0
    Dernier message: 01/05/2012, 21h54
  4. Réponses: 7
    Dernier message: 19/10/2004, 17h12
  5. problème JSP avec JBuilder et Weblogic 7
    Par viny dans le forum JBuilder
    Réponses: 2
    Dernier message: 24/04/2003, 09h07

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