Bonjour,

Mes péripéties continuent...
Mon but : afficher le contenu d'un fichier chargé par l'utilisateur dans la textarea de msg.jsp.
Pour le chargement, j'utilise le package FileUpload.

Voilà ma page importer.jsp :
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
 
<%@ page import="java.io.*" %>
 
<script language="JavaScript">
    function choixURL(){
            var objForm = document.getElementById('formChargement');
            var boutOnClick=document.getElementById('cache').value;
            if(boutOnClick=="Annuler")
                    objForm.action = "index.jsp";
            return false;
    }
</script>
 
<html>
<head>
<title>Page de chargement du fichier</title>
    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
</head>
<body>
    <form name="formChargement" action="uploadFormulaire.jsp" method="post" enctype="multipart/form-data" OnSubmit="choixURL()" id="formChargement">
        Choisissez votre fichier dans l'arborescence : <input type="file" name="monFichier"><br/><br/>
        <input type="submit" value="Charger le fichier"/>
        <input type="submit" value="Annuler" onclick="document.getElementById('cache').value=this.value;"/>
        <input type='hidden' id='cache'/>
    </form>
 
    <%
        String fichier = request.getParameter("monFichier");
        pageContext.getSession().setAttribute("fichier", fichier);
    %>
 
</body>
</html>
et la page appelée pour traiter les informations du formulaire : uploadFormulaire.jsp
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
 
<%@ page import="org.apache.commons.fileupload.*, java.util.List, java.io.File, java.util.Iterator" %>
<%
   String monFic = (String)request.getParameter("monFichier");
   String vide="";
        boolean isMultipart = FileUpload.isMultipartContent(request);
        if(!isMultipart){
            request.setAttribute("msg", "Request was not multipart!");
            request.getRequestDispatcher("msg.jsp").forward(request, response);
            return;
        }
        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("/")+"/tmp/", fullFile.getName());
                item.write(savedFile);
            }
        }
        request.getRequestDispatcher("msg.jsp").forward(request, response);
    %>
et la page msg.jsp :
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
 
<%@ page import="java.io.*" %>
<%
    String msg = (String)request.getAttribute("msg");
    if(msg != null) {
        out.println("<font size=+1>" + msg + "</font><br/>");
    }
%>
    <textarea readonly cols="50" rows="20">
        test de la page
         <%
            String monFichier = (String)getServletContext().getSession().getAttribute("fichier");
            try{
                BufferedReader in = new BufferedReader (new FileReader (monFichier));
                String str;
                while ((str=in.readLine()) != null){
                    out.println(str);
                }
                in.close();
            } catch (IOException e){
                out.println("Erreur d'ouverture du fichier");
            }
         %>
    </textarea>
    Cliquez <a href="importer.jsp">ici</a> pour retourner à la page de chargement de fichier.

En lisant le forum, j'ai essayé de passer le nom du fichier dans un paramètre de session mais visiblement, cela ne fonctionne pas non plus...

Bien sûr, à l'éxecution, j'ai une JasperException de la part de Tomcat.

Si vous voyez où ça cloche.
A +
Arnapou