Bonjour,
Quelqu'un pourrait-il me dire comment, en JSP, uploader un fichier depuis le poste du client et le stocker sur le serveur?
Merci
Bonjour,
Quelqu'un pourrait-il me dire comment, en JSP, uploader un fichier depuis le poste du client et le stocker sur le serveur?
Merci
Hello,
La question a été posée de multiple fois sur ce forum!
En faisant une recherche sur le forum developpement WEB en Java avec les mots clefs : upload file.
Tu devrais trouver une réponse!
Oui, en effet.
J'ai trouvé un bout de code que j'ai essayé d'adapter à ma situation mais j'ai toujours un souci.
Pourrais-tu m'aider à disgnostiquer le souci dans mon fichier Crea01.jsp dont le code est le suivant? (sachant que j'ai copié dans mon WEB-INF/lib toutes les librairie nécessaires notamment la commons-fileupload-1.1.1.jar)
Ainsi, lorsque je clique sur le bouton "valider", au lieu d'obtenir une copie (de la photo sélectionnée) dans le répertoire tmp , le programme passe toujours dans la partie :
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 <%@page language="java" contentType="text/html; charset=iso-8859-1" import="java.sql.*,javax.servlet.http.*,java.lang.*,java.util.*"%> <%@ page import="org.apache.commons.fileupload.*" %> <%@ page import="org.apache.commons.fileupload.DiskFileUpload" %> <%@ page import="java.util.List" %> <%@ page import="java.io.*" %> <%@ page import="java.io.File" %> <%@ page import="java.util.Iterator" %> <% 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); } } %> <html> <head><title>Test upload Fichier</title></head> <body> <form name="myForm" action="Crea01.jsp" method="post" enctype="multipart/form-data"> Nom <input type="text" name="mom"/><br/> Photo <input type="file" name="photo"/> <input type="submit" value="valider"> </form> </body> </html>
if(!isMultipart){
request.setAttribute("msg", "Request was not multipart!");
request.getRequestDispatcher("msg.jsp").forward(request, response);
return;
}
Merci d'avance
Hello,
Je pense que le code :
Devrait se trouver dans la servlet qui receptionnera la validation de ton formulaire.
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 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); } } %>
N'oublie pas que le code est executé coté serveur!![]()
Justement, et comment dois-je faire pour obtenir que ce code se trouve dans la servlet qui receptionnera la validation de mon formulaire?
Que dois-je mettre dans ma page Crea01.jsp?
Merci
Hello,
Il faut que le bout de code soit dans la méthode do*** (post ou get) de la servlet déclarée dans l'attribut action de ton formulaire.
Bonjour,
Je n'arrive pas à comprendre quand tu parles de méthode doPost ou doGet de la servlet déclarée dans action. En effet dans le "action", j'ai le même fichier "Crea01.jsp" (le submit doit me renvoyer vers la même page). Et puis, je ne sais pas comment je peux définir une méthode dans un fichier .jsp
Merci
Partager