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 :

Téléchargement du fichier JSP au lieu de son affichage


Sujet :

Servlets/JSP Java

  1. #1
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    190
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2004
    Messages : 190
    Points : 88
    Points
    88
    Par défaut Téléchargement du fichier JSP au lieu de son affichage
    Salut a tous,

    J'ai un petit probleme avec un fichier .JSP qui n'est pas afficher lorsque j'y accede mais propose son telechargement. J'ai verifie avec d'autre fichier .JSP et ils sont correctement affiches.

    Voici le code de mon fichier:
    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
    <?xml version="1.0"?>
    <!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
     
    <%@ page import="org.apache.commons.fileupload.*, org.apache.commons.fileupload.servlet.ServletFileUpload, org.apache.commons.fileupload.disk.DiskFileItemFactory, org.apache.commons.io.FilenameUtils, java.util.*, java.io.File, java.lang.Exception" %>
    <% response.setContentType("application/vnd.wap.xhtml+xml"); %>
     
    <html xmlns="http://www.w3.org/1999/xhtml">
      <head>
        <title>File Upload Example</title>
      </head>
     
      <body>
        <h1>Data Received at the Server</h1>
        <hr/>
        <p>
     
    <%
    if (ServletFileUpload.isMultipartContent(request)){
      ServletFileUpload servletFileUpload = new ServletFileUpload(new DiskFileItemFactory());
      List fileItemsList = servletFileUpload.parseRequest(request);
     
      String optionalFileName = "";
      FileItem fileItem = null;
     
      Iterator it = fileItemsList.iterator();
      while (it.hasNext()){
        FileItem fileItemTemp = (FileItem)it.next();
        if (fileItemTemp.isFormField()){
    %>
     
    <b>Name-value Pair Info:</b><br/>
    Field name: <%= fileItemTemp.getFieldName() %><br/>
    Field value: <%= fileItemTemp.getString() %><br/><br/>
     
    <%
          if (fileItemTemp.getFieldName().equals("filename"))
            optionalFileName = fileItemTemp.getString();
        }
        else
          fileItem = fileItemTemp;
      }
     
      if (fileItem!=null){
        String fileName = fileItem.getName();
    %>
     
    <b>Uploaded File Info:</b><br/>
    Content type: <%= fileItem.getContentType() %><br/>
    Field name: <%= fileItem.getFieldName() %><br/>
    File name: <%= fileName %><br/>
    File size: <%= fileItem.getSize() %><br/><br/>
     
    <%
        /* Save the uploaded file if its size is greater than 0. */
        if (fileItem.getSize() > 0){
          if (optionalFileName.trim().equals(""))
            fileName = FilenameUtils.getName(fileName);
          else
            fileName = optionalFileName;
     
          String dirName = "/file/";
     
          File saveTo = new File(dirName + fileName);
          try {
            fileItem.write(saveTo);
    %>
     
    <b>The uploaded file has been saved successfully.</b>
     
    <%
          }
          catch (Exception e){
    %>
     
    <b>An error occurred when we tried to save the uploaded file.</b>
     
    <%
          }
        }
      }
    }
    %>
     
        </p>
      </body>
    </html>

  2. #2
    Invité
    Invité(e)
    Par défaut
    Helllo

    Euh tu mélanges du xml avec de l'html?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <?xml version="1.0"?>

  3. #3
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    190
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2004
    Messages : 190
    Points : 88
    Points
    88
    Par défaut
    En fait c'est un example que j'essaye de faire fonctionner.
    J'ai supprime cette ligne mais j'obtiens le meme probleme.

    Par-contre je viens de remarquer un truc qui pourrait peut etre expliquer ce probleme. En fait, normalement cette page doit etre appele par une autre qui lui envoie une "request" avec le fichier a uploader.
    Donc dans mon cas j'envoie rien et j'essaye de lire une "request" vide. Mais ca devrait m'afficher une erreur non?

  4. #4
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    190
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2004
    Messages : 190
    Points : 88
    Points
    88
    Par défaut
    J'ai trouve un example qui a l'air de "mieux" fonctionner mais cette fois-ci j'obtiens une erreur de Tomcat:
    org.apache.jasper.JasperException: An exception occurred processing JSP page /pdfTool/upload_file_multipale.jsp at line 18

    15: ServletFileUpload upload = new ServletFileUpload(factory);
    16: List items = null;
    17: try {
    18: items = upload.parseRequest(request);
    19: } catch (FileUploadException e) {
    20: e.printStackTrace();
    21: }


    Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:524)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:417)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    Le fichier JSP entier:
    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
    <%@ page import="java.util.List" %>
       <%@ page import="java.util.Iterator" %>
       <%@ page import="java.io.File" %>
       <%@ page import="org.apache.commons.fileupload.servlet.ServletFileUpload"%>
       <%@ page import="org.apache.commons.fileupload.disk.DiskFileItemFactory"%>
       <%@ page import="org.apache.commons.fileupload.*"%>
       <%@ page contentType="text/html;charset=UTF-8" language="java" %>
       <center><table border="2">
            <tr><td><h1>Your files  uploaded </h1></td></tr>
       <%
     boolean isMultipart = ServletFileUpload.isMultipartContent(request);
     if (!isMultipart) {
     } else {
               FileItemFactory factory = new DiskFileItemFactory();
               ServletFileUpload upload = new ServletFileUpload(factory);
               List items = null;
               try {
                       items = upload.parseRequest(request);
               } catch (FileUploadException e) {
                       e.printStackTrace();
               }
               Iterator itr = items.iterator();
               while (itr.hasNext()) {
               FileItem item = (FileItem) itr.next();
               if (item.isFormField()) {
               } else {
                       try {
                               String itemName = item.getName();
                               File savedFile = new File(config.getServletContext().getRealPath("/")+"uploaded_files/"+itemName);
                               item.write(savedFile);  
                                            
                               out.println("<tr><td><b>Your file has been saved at the loaction:</b></td></tr><tr><td><b>"+config.getServletContext().getRealPath("/")+"uploaded_files"+"\\"+itemName+"</td></tr>");
                       } catch (Exception e) {
                               e.printStackTrace();
                       }
               }
               }
       }
       %>
        </table>
       </center>
    Le fichier HTML qui envoie la requete:
    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
    <html>
     <head><title>Upload page</title></head></p> <p><body>
     <form action="upload_file_multipale.jsp" method="post" enctype="multipart/form-data" name="form1" id="form1">
       <center>
       <table border="2">
           <tr>
    	       <td align="center"><b>Multipale file Uploade</td>
    	   </tr>
           <tr>
    	       <td>
    		       Specify file: <input name="file" type="file" id="file">
    		   <td>
    	   </tr>
    	   <tr>
    	      <td>
    		     Specify file:<input name="file" type="file" id="file">
    		  </td>
            <tr>
    		   <td>
    		      Specify file:<input name="file" type="file" id="file">
    		   </td>
    		 </tr>
    		 <tr>
    		    <td align="center">
                   <input type="submit" name="Submit" value="Submit files"/>
    			</td>
    		 </tr>
        </table>
    	<center>
     </form>
     </body>
     </html>

  5. #5
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    190
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2004
    Messages : 190
    Points : 88
    Points
    88
    Par défaut
    Je rajoute le log complet. Si ca peut aider (moi ca m'aide pas dutout )

    INFO | jvm 1 | 2009/03/11 15:36:20 | SEVERE: Servlet.service() for servlet jsp threw exception
    INFO | jvm 1 | 2009/03/11 15:36:20 | org.apache.jasper.JasperException: An exception occurred processing JSP page /pdfTool/upload_file_multipale.jsp at line 18
    INFO | jvm 1 | 2009/03/11 15:36:20 |
    INFO | jvm 1 | 2009/03/11 15:36:20 | 15: ServletFileUpload upload = new ServletFileUpload(factory);
    INFO | jvm 1 | 2009/03/11 15:36:20 | 16: List items = null;
    INFO | jvm 1 | 2009/03/11 15:36:20 | 17: try {
    INFO | jvm 1 | 2009/03/11 15:36:20 | 18: items = upload.parseRequest(request);
    INFO | jvm 1 | 2009/03/11 15:36:20 | 19: } catch (FileUploadException e) {
    INFO | jvm 1 | 2009/03/11 15:36:20 | 20: e.printStackTrace();
    INFO | jvm 1 | 2009/03/11 15:36:20 | 21: }
    INFO | jvm 1 | 2009/03/11 15:36:20 |
    INFO | jvm 1 | 2009/03/11 15:36:20 |
    INFO | jvm 1 | 2009/03/11 15:36:20 | Stacktrace:
    INFO | jvm 1 | 2009/03/11 15:36:20 | at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:524)
    INFO | jvm 1 | 2009/03/11 15:36:20 | at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:417)
    INFO | jvm 1 | 2009/03/11 15:36:20 | at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
    INFO | jvm 1 | 2009/03/11 15:36:20 | at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
    INFO | jvm 1 | 2009/03/11 15:36:20 | at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    INFO | jvm 1 | 2009/03/11 15:36:20 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    INFO | jvm 1 | 2009/03/11 15:36:20 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    INFO | jvm 1 | 2009/03/11 15:36:20 | at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
    INFO | jvm 1 | 2009/03/11 15:36:20 | at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    INFO | jvm 1 | 2009/03/11 15:36:20 | at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    INFO | jvm 1 | 2009/03/11 15:36:20 | at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
    INFO | jvm 1 | 2009/03/11 15:36:20 | at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
    INFO | jvm 1 | 2009/03/11 15:36:20 | at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    INFO | jvm 1 | 2009/03/11 15:36:20 | at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
    INFO | jvm 1 | 2009/03/11 15:36:20 | at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    INFO | jvm 1 | 2009/03/11 15:36:20 | at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
    INFO | jvm 1 | 2009/03/11 15:36:20 | at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    INFO | jvm 1 | 2009/03/11 15:36:20 | at java.lang.Thread.run(Unknown Source)

  6. #6
    Membre confirmé
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Points : 642
    Points
    642
    Par défaut
    Ce qui serait mieux et plus propre.

    c'est de ne pas faire le traitement d'upload sans une jsp mais une serlvet

    le code dans les jsp c'est mal ^^, la jsp s'utilise plus comme une vue pour afficher des données plutot que pour faire du traitement.

    remplace ton upload_file_multipale.jsp par une action ou l'upload sera executé par une servlet si tu as des erreurs tu pourras debuger plus facilement.
    Si le traitement dans la servlet se déroule correctement tu rediriges à la fin vers une jsp ou tu informes l'utilisateur.

    tu trouvera de bon exemple sur http://commons.apache.org/fileupload/

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

Discussions similaires

  1. Téléchargement de fichier
    Par casafa dans le forum Web & réseau
    Réponses: 21
    Dernier message: 18/06/2009, 23h34
  2. Téléchargement fichier JSP
    Par babalastar dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 29/04/2008, 13h21
  3. Téléchargement de fichiers par HTTP / FTP
    Par Gladiator dans le forum Serveurs (Apache, IIS,...)
    Réponses: 2
    Dernier message: 07/12/2005, 11h28
  4. Réponses: 5
    Dernier message: 05/11/2005, 17h53
  5. [SOAP][XML][C#.NET] Téléchargement de fichiers XML
    Par juniorAl dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 27/06/2005, 09h35

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