UPLOAD D'UN FICHIER EN JSP

daveCrocket Messages postés 10 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 30 juillet 2004 - 22 juil. 2004 à 17:14
bcmlive Messages postés 2 Date d'inscription lundi 21 novembre 2011 Statut Membre Dernière intervention 6 juin 2012 - 6 juin 2012 à 13:55
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/24699-upload-d-un-fichier-en-jsp

bcmlive Messages postés 2 Date d'inscription lundi 21 novembre 2011 Statut Membre Dernière intervention 6 juin 2012
6 juin 2012 à 13:55
+1
mammouti Messages postés 9 Date d'inscription lundi 17 mars 2008 Statut Membre Dernière intervention 3 juin 2011
22 mai 2011 à 01:33
Bonsoir,
j'ai besoin d'un code qui permet le transfert d'un fichier entre 2 clients SVP j'ai besoin d'aide et c urgent.Mercii bcp d'avance

concernant ce code j'ai fais toutes les étapes mais j'arrive pas à exécuter l'application
j'ai cette erreur:

type Rapport d'état

message /fileupload/

description La ressource demandée (/fileupload/) n'est pas disponible.

Merciiiiiii bcp de m'aider c urgennnt
:'(
uneurovingt Messages postés 1 Date d'inscription dimanche 27 mars 2011 Statut Membre Dernière intervention 27 mars 2011
27 mars 2011 à 16:53
Bonjour,

Pour ceux dont le code ne fonctionne pas avec Eclipse, voici comment ça fonctionne chez moi:
-Créer un projet Tomcat dans Eclipse (après avoir installé le plugin Tomcat)
-Glissez-déposez le dossier 'org' dans le WEB-INF/src du projet Eclipse.
-Enregistrez/compilez le projet si Eclipse ne le fait pas tout seul.
-Dans webapps/nom_du_projet de Tomcat : copiez les fichiers .jsp et la page html. Créez une page index.html et insérez-y un lien de index.html vers testupload.html. N'oubliez pas de créer un dossier tmp.
-Redémarrez Tomcat avec le plugin Eclipse cité plus haut.

Et normalement ça marche.

Bon courage à tous
NanouLio Messages postés 1 Date d'inscription lundi 2 août 2010 Statut Membre Dernière intervention 2 août 2010
2 août 2010 à 15:19
salut tout le monde,
je voulais savoir si cette version peut eventuellement fonctioner sur un serveur Oracle.
si non quel sont les changement à effectuer ?
merci pour votre réponse.
escadasentiment Messages postés 1 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 15 mai 2010
15 mai 2010 à 04:17
bonsoir ,
je viens d'executer le code et j'ai le problème de acces refusé malgé qu'il stocke l'image dans le dossier précisé.
J'ai essaye la methode d'écrire le chemin du dossier en brut et ça ne marche pas.
J'attends vos reponses.Merci
simovic Messages postés 8 Date d'inscription dimanche 11 mai 2008 Statut Membre Dernière intervention 16 mars 2010
18 janv. 2010 à 14:49
Problème résolu, un grand merci à STEPHANEG .
cs_stephaneg Messages postés 15 Date d'inscription jeudi 11 décembre 2003 Statut Membre Dernière intervention 12 mai 2010 1
14 janv. 2010 à 19:10
Pour partir sur de bonnes bases utilisez ce qui est sur ce lien: http://www.roseindia.net/struts/strutsfileuploadandsave.shtml
C'est un bon modèle, il y a des servlets, actions, JSP, ..., bien structurés(un vrais MVC Struts).
simovic Messages postés 8 Date d'inscription dimanche 11 mai 2008 Statut Membre Dernière intervention 16 mars 2010
12 janv. 2010 à 22:38
bonsoir,
j'ai peur de ne pas avoir bien saisi .
Quel bean utilises tu et qu'est qu'il permet de faire ?
Dans mon cas j'utilise un uploadbean pour uploader une image sur le serveur.
Tu sembles suggerer de faire comme cela :

" />
cs_stephaneg Messages postés 15 Date d'inscription jeudi 11 décembre 2003 Statut Membre Dernière intervention 12 mai 2010 1
12 janv. 2010 à 20:39
sur mon projet (site d'annonce) j'ai un bean avec nom, prénom, adresse, ...., photo

voici comment j'affiche la photo

" />

dans le bean "annoncesBean" il y a:
nom = dupont;
prenom = toto;
adresse = 3 rue de la poste;
...
photo = toto_dsrgv345gzg47tgyte.gif

PS: dsrgv345gzg47tgyte est une clé qui permet de changer la photo (pas de cache, dans le navigateur comme ça)
simovic Messages postés 8 Date d'inscription dimanche 11 mai 2008 Statut Membre Dernière intervention 16 mars 2010
12 janv. 2010 à 13:18
ah oui biensur, je te remercie ça marche maintenant mais c'est pas tout à fait le comportement que je cherche .
J'aimerais afficher l'image qui vient d'etre uploadée?
J'ai essaié avec ceci mais apparement il ne trouve pas l'image

normal filename est null
Comment pourrais je accéder a une variable dans mon code jsp?
cs_stephaneg Messages postés 15 Date d'inscription jeudi 11 décembre 2003 Statut Membre Dernière intervention 12 mai 2010 1
12 janv. 2010 à 12:42
change:

par:
simovic Messages postés 8 Date d'inscription dimanche 11 mai 2008 Statut Membre Dernière intervention 16 mars 2010
11 janv. 2010 à 11:03
Bonjour,
Ton idée est pas mal c'est ce que j'essaie de faire d'ailleurs
je pense qu'avec un bout de code tu arriveras à comprendre mieux mon problème.

voici ma page JSP:

<jsp:useBean id="upBean" scope="page" class="javazoom.upload.UploadBean">
<jsp:setProperty name="upBean" property="folderstore"
value="D:/Tomcat 5.5/webapps/Projet/uploadClient" />
</jsp:useBean>

<%
if (MultipartFormDataRequest.isMultipartFormData(request)) {
// Uses MultipartFormDataRequest to parse the HTTP request.
MultipartFormDataRequest mrequest = new MultipartFormDataRequest(
request);
String todo = null;
String temp = null;
String afterdot = null;
if (mrequest != null)
todo = mrequest.getParameter("todo");
if ((todo != null) && (todo.equalsIgnoreCase("upload"))) {
Hashtable files = mrequest.getFiles();
if ((files != null) && (!files.isEmpty())) {
//addUploadListener(UploadListener listener);

UploadFile file = (UploadFile) files.get("uploadfile");

//UploadFile filesto = (UploadFile) files.get("filestocke" );
if (file != null) {
// temp = file.getFileName();
String filename = file.getFileName();

int pos = filename.indexOf(".");
// verify there is a dot
if (pos != -1) {
}
// length of the file name to verify if after the dot there is only gif jpeg jpg
int len = filename.length();
afterdot = filename.substring(pos + 1, len);

//out.println(afterdot); a transformer uppercase
if (afterdot.equals("GIF")
|| afterdot.equals("jpeg")
|| afterdot.equals("jpg")
|| afterdot.equals("JPG")
|| afterdot.equals("JPEG")
|| afterdot.equals("PNG")
|| afterdot.equals("PNG")) {
//out.println("<li>Form field : uploadfile"+"
Uploaded file : "+file.getFileName()+"("+file.getFileSize()+" bytes)"+"
Content Type : "+file.getContentType());

out.println("L'image " + filename
+ " a été uploade avec succés");
upBean.store(mrequest, "uploadfile");
File image = (File) request.getAttribute("key");

} else {
%>
<script type="text/javascript" language="Javascript1.5">
alert("Select a picture to upload" );
</script>
<%
}
// Uses the bean now to store specified by jsp:setProperty at the top.

}
} else {
System.out.println("<li>No uploaded files");
}
} else
out.println("
todo=" + todo);
}
%>

Pour afficher mon image dans cette page je fais:

Ca ne marche pas !!!

Ma servlet qui affiche une image :

HttpSession session = req.getSession();
File image = (File) session.getAttribute("todo");

ServletContext sc = getServletContext();
String imagepath= sc.getRealPath("/uploadClient/"+icilenomdelimage);
// Get the MIME type of the image
String mimeType = sc.getMimeType(imagepath);
if (mimeType == null) {
sc.log("Could not get MIME type of "+imagepath);
resp.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
return;
}

// Set content type
resp.setContentType(mimeType);
// Set content size
File file = new File(imagepath);
resp.setContentLength((int)file.length());
// Open the file and output streams
FileInputStream in = new FileInputStream(file);
//OutputStream ou = resp.getOutputStream();
// Copy the contents of the file to the output stream

resp.setContentType("image/jpeg" );
BufferedOutputStream out2 = new BufferedOutputStream(resp.getOutputStream());
byte by[] = new byte[ 32768 ];
int index = in.read( by, 0, 32768 );
while ( index != -1 )
{
out2.write( by, 0, index );
index = in.read( by, 0, 32768 );
}
out2.flush();
}

Comment faire pour passer le nom de l'image/path via la session
HttpSession session = req.getSession();

Je vous remercie d'avance.
cs_stephaneg Messages postés 15 Date d'inscription jeudi 11 décembre 2003 Statut Membre Dernière intervention 12 mai 2010 1
11 janv. 2010 à 10:02
Je ne vois pas trop ou est ton problème. Tu passes le nom du fichier et le path via la session par exemple.
simovic Messages postés 8 Date d'inscription dimanche 11 mai 2008 Statut Membre Dernière intervention 16 mars 2010
10 janv. 2010 à 23:06
Merci pour le source qui est tres interessant et qui marche pour moi .
Pour mon projet j'utilise uploadbean que j'integre à une jsp pour uploader des images sur le serveur .
POur afficher une image dans le browser j'ai cree une servlet ImageDisplay.
J'arrive à afficher une image en specifiant dans servlet le path de celle ci .
Ma question est : Comment pourrais je envoyer à ma servlet l'image que je viens d'uploder pour que ma servlet me l'affiche?
Je vous remercie d'avance!!!
Chris1987 Messages postés 3 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 5 décembre 2009
5 déc. 2009 à 10:59
Salut,

J'ai vu ton post très intéressant mais je me demandais s'il fallait faire quelque modifications pour l'adapter au J2ME. Je m'explique, j'aimerais envoyer un fichier image de mon portable vers mon serveur tomcat.
lilianah Messages postés 1 Date d'inscription jeudi 12 novembre 2009 Statut Membre Dernière intervention 13 novembre 2009
13 nov. 2009 à 08:22
pour moi il n' y a aucune erreur mais quand je regarde dans tmp
après validation du formulaire,aucun fichier n'est uploadé
est ce que quelqu'un peut m'aider
hamzamalek Messages postés 15 Date d'inscription mercredi 5 août 2009 Statut Membre Dernière intervention 21 juillet 2011
5 août 2009 à 17:34
Bonjour
Je n'ai pas trouvé le dossier src dans WEB-INF ,donc j'ai mis le dossier org
dans le dossier src de projet mais je n'arrive pas a l'exécuter,
j'utilise eclipse et tomcat 6 .

Merci de votre compréhension.
cs_stephaneg Messages postés 15 Date d'inscription jeudi 11 décembre 2003 Statut Membre Dernière intervention 12 mai 2010 1
2 juil. 2009 à 20:01
moi j'ai : "C:/apache-tomcat-5.5.27/webapps/monPjet/photos/"

la solution la pus simple est de mettre "C:/apache-tomcat-5.5.27/webapps/monPjet/" dans le ficher web.xml:

<context-param>
serverPath


C:/apache-tomcat-5.5.27/webapps/monPjet/


</context-param>

et dans la partie java:

getServletContext().getInitParameter("serverPath");
LaSirenne Messages postés 1 Date d'inscription jeudi 22 novembre 2007 Statut Membre Dernière intervention 2 juillet 2009
2 juil. 2009 à 12:23
Salut à tous,
l'exemple est très intéressant, mais j'ai un grand problème avec l'endroit d'enregistrement de fichier;
il ya 2 methode:
soit en ecrivant le path en dur (c:/...)
soit en accedant au path de l'application (getServletContext().getRealPath("/") ........)
MAIS MON PROBLEME, COMMENT JE PEUX METTRE UN PATH RELATIF, c.à.dire un chemin relation à l'application:
exp: /monapplication/images
SVP qui peut m'aider?
merci
cs_stephaneg Messages postés 15 Date d'inscription jeudi 11 décembre 2003 Statut Membre Dernière intervention 12 mai 2010 1
18 mai 2009 à 17:43
certains ont demandés la même chose mais dans une servlet.

Voici un upload file via Struts, il est complet simple et surtout il marche du 1er coup.

http://www.roseindia.net/struts/strutsfileuploadandsave.shtml
cs_stephaneg Messages postés 15 Date d'inscription jeudi 11 décembre 2003 Statut Membre Dernière intervention 12 mai 2010 1
18 mai 2009 à 16:15
c'est bon ça marche nickel merci bcp.

J'ai eu des petits problèmes au début mais maintenant c'est bon.

PB: manque de lib
Solution: ajouter commons-io-1.4.jar et commons-fileupload-1.2.1.jar

PB: problème de droits sur 'tmp' car j'utilise un projet Web Dynamique via Eclipse.
Solution: écrir le path en dur (changer File savedFile = new File(getServletContext().getRealPath("/") + "/BDD/", fullFile.getName()); par
File savedFile = new File("C:/apache-tomcat-5.5.27/webapps/nomDuProjet/tmp/", fullFile.getName());
cs_bassbaki Messages postés 1 Date d'inscription mercredi 8 août 2007 Statut Membre Dernière intervention 14 mai 2009
14 mai 2009 à 16:05
Bonjour, comment tu as fait ba3abbad pour que ça marche?

moi il me donne accès refusé à .../tmp
Est ce qu'il faut declarer qq chose dans le fichier web.xml?
ba3abbad Messages postés 3 Date d'inscription lundi 25 décembre 2006 Statut Membre Dernière intervention 29 avril 2009
29 avril 2009 à 06:13
c bon ca marche nickel merci bcp
ba3abbad Messages postés 3 Date d'inscription lundi 25 décembre 2006 Statut Membre Dernière intervention 29 avril 2009
26 avril 2009 à 16:53
resalut
j ai teste avec le jar 1.0 de fileupload et j ai plus ce message d erreur mais un autre est apparu ( est ce qu on peut me dire le chemin exact ou creer le dossier temp) :

org.apache.jasper.JasperException: An exception occurred processing JSP page /testupload.jsp at line 23

20: } else {
21: File fullFile = new File(item.getName());
22: File savedFile = new File(getServletContext().getRealPath("/")+"/tmp/", fullFile.getName());
23: item.write(savedFile);
24: }
25: }
26:

Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:505)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:416)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

cause mï¿œre

java.lang.NullPointerException
org.apache.commons.fileupload.DefaultFileItem.write(DefaultFileItem.java:442)
org.apache.jsp.testupload_jsp._jspService(testupload_jsp.java:80)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
ba3abbad Messages postés 3 Date d'inscription lundi 25 décembre 2006 Statut Membre Dernière intervention 29 avril 2009
26 avril 2009 à 15:56
bonjour tout le monde j'ai testé le le code mais le probleme que je rencontre c est que apres avoir valider je tombe sur la page d erreur suivante sachant que mes fichiers sont configurés de la maniere suivane:
WebContent
META-INF
WEB-INF
lib
commons-fileupload-1.1.jar
cos.jar
src
org
apache
common
fileupload
testupload
testupload.html
msg.jsp

voici le message d erreur:

org.apache.jasper.JasperException: javax.servlet.ServletException: java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:522)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:398)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

cause mï¿œre

javax.servlet.ServletException: java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:852)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:781)
org.apache.jsp.testupload_jsp._jspService(testupload_jsp.java:97)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

cause mï¿œre

java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream
org.apache.commons.fileupload.DefaultFileItemFactory.createItem(DefaultFileItemFactory.java:102)
org.apache.commons.fileupload.FileUploadBase.createItem(FileUploadBase.java:500)
org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:367)
org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:268)
org.apache.jsp.testupload_jsp._jspService(testupload_jsp.java:69)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

cause mï¿œre

java.lang.ClassNotFoundException: org.apache.commons.io.output.DeferredFileOutputStream
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
java.lang.ClassLoader.loadClassInternal(Unknown Source)
org.apache.commons.fileupload.DefaultFileItemFactory.createItem(DefaultFileItemFactory.java:102)
org.apache.commons.fileupload.FileUploadBase.createItem(FileUploadBase.java:500)
org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:367)
org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:268)
org.apache.jsp.testupload_jsp._jspService(testupload_jsp.java:69)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

merci d avance
j ai le meme probleme avec les jar 1.2.1 de fileupload
gazellehba Messages postés 1 Date d'inscription lundi 29 septembre 2008 Statut Membre Dernière intervention 16 avril 2009
16 avril 2009 à 12:24
merci , c'est trés joli , se projet m'aide aussi .
zekabyle Messages postés 28 Date d'inscription lundi 6 mars 2006 Statut Membre Dernière intervention 2 janvier 2007
28 avril 2008 à 23:45
c'est joli ce que tu as fait PMBALA, je suis sûr que ça va aider plus d'une personne :)

ça m'aide déjà, ça fait déjà une personne ^^
pmbala Messages postés 30 Date d'inscription samedi 4 décembre 2004 Statut Membre Dernière intervention 2 avril 2008
28 avril 2008 à 10:51
Ok je balance le petit truc,j'espère que ça aidera qlq1 un jour...lol
------------------------------------------------------------

// package necessaires (en ajouter au besoin)
<%@ page language="java" import="java.io.*,java.util.*" %>

// le code est clair,on met les fichiers de rep dans une liste
<%! String [] liste; int i;
File rep = new File("C:\\dev\\Tomcat5_5webapps\\intranet\\tmp"); %>

<%liste = rep.list();%>
<% for(i= 0; i < liste.length;i++)
{%>
// affiche les fichiers qui commencent par "xxxx"
<%if(liste[i].startsWith("xxxx")==true )
{ %>
// et pour chaque fichier transforme le nom en lien hypertexte
[tmp/<%=liste[i].substring(0,liste[i].length())%> <%=liste[i].substring(0,liste[i].length())%>]


<%}%>
<%}%>
----------------------------------------------------------------
Voilà c'est une petite routine qui marche et qui m'a aidé dans un projet...
zekabyle Messages postés 28 Date d'inscription lundi 6 mars 2006 Statut Membre Dernière intervention 2 janvier 2007
27 avril 2008 à 23:09
en effet PMBALA, je veux bien que tu balances le code

merci
pmbala Messages postés 30 Date d'inscription samedi 4 décembre 2004 Statut Membre Dernière intervention 2 avril 2008
16 avril 2008 à 13:23
une solution simple serait de lister les fichiers de ton repertoire et les afficher sous forme de liens hypertexte,pour permettre à l'utilisateur de telecharger.Tu peux même faire des filtres(sur le nom,type,ou ce que tu veux...du fichier en fonction des profils ou des vues à afficher.
Si c pas clair et si ça interesse qlq1 je balance le code...lol
cancrat Messages postés 1 Date d'inscription vendredi 4 mai 2007 Statut Membre Dernière intervention 7 mai 2007
7 mai 2007 à 14:44
Bonjour mojo9 et les autres développeurs,

Tout d'abord merci beaucoup pour ce projet, rien de tel qu'un bon exemple pour comprendre! :-)

Dans un premier temps, j'ai testé le code tel quel, tout fonctionne. Et puis je l'ai repris et modifié à des fins personnelles et là, j'ai un petit soucis. J'ai le message suivant lorsque j'exécute ma page:

C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\test_requetes\tmp (Accès refusé)

Mais le fichier que je souhaite télécharger et bel et bien enregistré dans mon dossier temporaire.

Est-ce que tu aurais une idée de la raison?

ton projet commence à dater, j'espère que tu auras tout de même une piste à me suggérer.

Encore merci pour le projet
soukak Messages postés 2 Date d'inscription dimanche 22 avril 2007 Statut Membre Dernière intervention 22 avril 2007
22 avril 2007 à 13:44
je retire ce que j'ai dis, je n'avais pas chargé les deux fichiers, j'avais qu'un fichier html, j'ai reessayé en mettant 2 fichiers, ca marche impec. :-)

super, ca fait vmt plaisir
soukak Messages postés 2 Date d'inscription dimanche 22 avril 2007 Statut Membre Dernière intervention 22 avril 2007
22 avril 2007 à 13:38
salut ubudogg,

j'ai fais exactement ce que tu as ecrit, c tres clair, le seul pb, qd j'appuie sur F6, je lance ensuite la page.html j'ajoute les fichier, qd je met submit il me renvoi le code de la page testupload.jsp.

Alors je travail ac netBeans v5.5 et tomcat 5.5.17, j'ai importé tte les librairies necessaires, est ce que tu aurais une petite idée d'ou viendrai le pb ?

Merci
boosy Messages postés 2 Date d'inscription jeudi 28 octobre 2004 Statut Membre Dernière intervention 20 février 2007
20 févr. 2007 à 12:13
n'y aurait-il pas un probleme de compatibilité avec la version j2ee 1.4 de Java ??
je viens toutjuste de changer de version, et il m'est dorénavant impossible d'uploader un fichier.

Merci de votre attention.
ubudogg Messages postés 1 Date d'inscription jeudi 17 août 2006 Statut Membre Dernière intervention 7 décembre 2006
7 déc. 2006 à 20:06
Le code fonctionne donc je mets 10 : j'ai réussi à uploader 2 images sur mon serveur local.

Par contre j'ai eu quelques difficultés pour tout faire fonctionner (notamment avec l'histoire du package fileupload). Voici donc la procédure que j'ai utilisé sous Netbeans 5.0 si ça peut aider quelqu'un :
- creer un nouveau projet de type "Web Application" (laissez les valeurs par défaut, notamment pour les frameworks)
- clic droit sur votre projet, new JSP et ensuite new HTML (valuers par défaut toujours) afin de créer les 2 fichiers .jsp et la page .html nécessaires (en leur donnant leur nom indiqué dans le .zip)
- copiez coller leur code respectif
- clic droit sur votre projet, new package, donnez lui le nom "org.apache.commons.fileupload" (l'arborescence de dossiers va se créer toute seule)
- copier tous les fichiers.java du dossier org contenu dans le zip dans "dossier de votre projet/src/java/org/apache/commons/fileupload"
- créer le dossier tmp dans "dossier de votre projet/build/web" (créer les dossiers si nécessaire)
- lancer votre projet avec F6
- cliquer sur "testupload.html" etc...

Tout fonctionne :) vous avez uploadé vos 2 fichiers dans le répertoire "tmp" de votre serveur local.

Si jamais vous avez des difficultés à comprendre ce que j'ai écrit n'hésitez pas.
cs__Syl_ Messages postés 66 Date d'inscription vendredi 20 octobre 2006 Statut Membre Dernière intervention 25 février 2008 2
15 nov. 2006 à 17:23
Re
Bon il fallait mettre commons-fileupload-1.1.1.jar dans common/endorsed
Cela dit j'ai maintenant un probleme avec jasper

org.apache.jasper.JasperException: Exception in JSP: /testupload.jsp:13

10: out.println(phrases[i]);
11: }
12: //HttpServletRequest request = new HttpServletRequest();
13: boolean isMultipart = FileUpload.isMultipartContent(request);
14: if(!isMultipart)
15: {
16: request.setAttribute("msg", "Request was not multipart!");


Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:506)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


cause mère

javax.servlet.ServletException: javax/servlet/http/HttpServletRequest
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:843)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:776)
org.apache.jsp.testupload_jsp._jspService(testupload_jsp.java:98)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


cause mère

java.lang.NoClassDefFoundError: javax/servlet/http/HttpServletRequest
org.apache.commons.fileupload.FileUploadBase.isMultipartContent(FileUploadBase.java:96)
org.apache.jsp.testupload_jsp._jspService(testupload_jsp.java:60)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


Si quelqu'un a une idée je prends !
Merci d'avance
Syl'
cs__Syl_ Messages postés 66 Date d'inscription vendredi 20 octobre 2006 Statut Membre Dernière intervention 25 février 2008 2
15 nov. 2006 à 15:09
désolé pour le double post (conexion en carton=lag à la con :p)
la cause mère :
Impossible de compiler la classe pour la JSP
cs__Syl_ Messages postés 66 Date d'inscription vendredi 20 octobre 2006 Statut Membre Dernière intervention 25 février 2008 2
15 nov. 2006 à 15:07
Bonjour à tous

Voilà mon problème
Malgré le
import="org.apache.commons.fileupload.*,..."
en prmière ligne du fichier "testupload.jsp"
J'ai un message d'erreur me disant que les types FileUpload, DiskFileUpload, FileItem ne peuvent pas être résolus :

Une erreur s'est produite à la ligne: 2 dans le fichier jsp: /testupload.jsp
Erreur de servlet générée:
FileUpload cannot be resolved

Une erreur s'est produite à la ligne: 2 dans le fichier jsp: /testupload.jsp
Erreur de servlet générée:
DiskFileUpload cannot be resolved to a type

etc.

Si quelqu'un a une idée, je suis preneur !
Merci d'avance

Config
Serveur tomcat 5.5.2
org dans le WEB-INF/src ok
commons-fileupload-1.1.1.jar dans /common/lib
bref, à priori ça devrait marcher
zinentmazirt Messages postés 2 Date d'inscription vendredi 24 février 2006 Statut Membre Dernière intervention 14 octobre 2006
14 oct. 2006 à 00:17
Merci skybane,

Je vais essayer cette solution, c cool
skybane Messages postés 3 Date d'inscription jeudi 18 mai 2006 Statut Membre Dernière intervention 13 octobre 2006
13 oct. 2006 à 18:07
Bonjour,

Voilà un morceau de code qui devrait t'aider à récupérer un ou des autres paramètres :
(Dans le code ci-dessous je récupère un seul paramètre en plus du fichier)


FileItemFactory factory = new DiskFileItemFactory();

ServletFileUpload upload = new ServletFileUpload(factory);

upload.setSizeMax(1000000);

//Parse the request
List  items=null;
try {
  items = upload.parseRequest(request);
} catch (FileUploadException e) {
e.printStackTrace();
}

//Process the uploaded items
Iterator iter = items.iterator();

String leParametre=null;
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
     if (item.isFormField()){
if (item.getFieldName().equalsIgnoreCase("nomDuParametre")){
leParametre= item.getString();
        }
//etc.....

//et Pour copier le fichier il faudra écrire 
File uploadedFile = new File("chemin et nom du nouveau fichier");
try {item.write(uploadedFile);
} catch (Exception e) {
}
//Etc.....


Voilà
zinentmazirt Messages postés 2 Date d'inscription vendredi 24 février 2006 Statut Membre Dernière intervention 14 octobre 2006
13 oct. 2006 à 01:05
Merci ça m'a vraiment aidé mais je ne sais pas comment récuperer les autres param du form
cs_amidon Messages postés 28 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 12 juin 2006
21 août 2006 à 09:23
Alléluia !!!

Merci pour cette source qui tombe ô combien à point...

Encore merci et bonne continuation !
cs_hinanui Messages postés 1 Date d'inscription mercredi 1 juin 2005 Statut Membre Dernière intervention 18 août 2006
18 août 2006 à 16:48
J'avais un problème au début de copie de fichier : "The system cannot find the path specified", c'est parce que je n'avais pas encore créé le répertoire "tmp" dans mon projet! hihi!

Sinon, il faut bien mettre tout les fichiers du répertoire org dans WEB-INF/src/org/

C'est génial! Ça marche maintenant comme sur des roulettes! Merci beaucoup!!
1cppfrance Messages postés 1 Date d'inscription lundi 2 août 2004 Statut Membre Dernière intervention 18 juillet 2006
18 juil. 2006 à 22:44
tu pourrait la mettre ...
skybane Messages postés 3 Date d'inscription jeudi 18 mai 2006 Statut Membre Dernière intervention 13 octobre 2006
18 mai 2006 à 19:20
c'est bon j'ai trouvé la solution au problème.

Merci pour le code source.
skybane Messages postés 3 Date d'inscription jeudi 18 mai 2006 Statut Membre Dernière intervention 13 octobre 2006
18 mai 2006 à 16:44
Bonjour,

Cette source d'upload de fichiers date d'il y a 2 ans, mais je tente quand même une question.

boolean isMultipart = FileUpload.isMultipartContent(request);

Je ne sais pas quel est le phénomène mais isMultipart est constamment false.
pourtant je spécifie bien enctype="multipart/form-data" dans ma Form.


Si quelqu'un à une idée, Merci d'avance
c___moi Messages postés 2 Date d'inscription mercredi 14 janvier 2004 Statut Membre Dernière intervention 18 juillet 2006
10 avril 2006 à 13:50
bonjour, je suis tombé ici et j'ai eu le meme probleme que toi :

tu dois ajouter à tomcat la librairie COS:
http://www.servlets.com/cos/

j'ai trouvé tout seul et j'ai mis du temps ... ca devrait servir à d'autres !
cs_kedare Messages postés 11 Date d'inscription samedi 19 mars 2005 Statut Membre Dernière intervention 28 juillet 2006
24 mars 2006 à 23:42
impossible de le faire marcher , je sait pas quoi faire du dossier org :/
j'ai essayer dans
common/lib/ , rien
WEB-INF/lib/ rien
WEB-INF/src/ rien
WEB-INF/classes/ rien
il me met toujour son :xxxxx cannot be resolved
bref j'en fait quoi du ORG ? :/
merci
mojo9 Messages postés 46 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 16 mars 2006
16 mars 2006 à 00:35
Tout est dans le zip Dernongg...

Tu rajoute les classe dans le src et le tour est joué !

Courage !

Broyyom
dernoncg Messages postés 4 Date d'inscription mardi 21 juin 2005 Statut Membre Dernière intervention 14 mars 2006
14 mars 2006 à 22:47
"""""la classe est dans le package org.apache.commons.io... donc on oublie ce que j'ai dit au dessus.
Rajoute donc ce nouveau package et ça passe."""""

Tu peux me dire où je peux trouver ce package????
tarzent Messages postés 30 Date d'inscription vendredi 12 juillet 2002 Statut Membre Dernière intervention 15 mai 2009
4 janv. 2006 à 17:19
Ok, la classe est dans le package org.apache.commons.io... donc on oublie ce que j'ai dit au dessus.
Rajoute donc ce nouveau package et ça passe.
tarzent Messages postés 30 Date d'inscription vendredi 12 juillet 2002 Statut Membre Dernière intervention 15 mai 2009
4 janv. 2006 à 17:05
J'avais la même erreur que toi.
Je viens de remarquer que dans le package 1.1 de commons.fileupload de apache il n'y a pas la classe DeferredFileOutputStream... Oubli d'apache?
Donc soit tu prends la version précédente, soit tu tentes d'intégrer l'ancienne classe DeferredFileOutputStream dans le nouveau package
simloub Messages postés 2 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 7 décembre 2005
7 déc. 2005 à 11:18
Bonjour, j'ai beau avoir lu et relu le forum, fait tout ce que vous dites, j'ai toujours l'erreur suivante :

type Rapport d'exception

message

description Le serveur a rencontré une erreur interne () qui l'a empêché de satisfaire la requête.

exception

javax.servlet.ServletException: org/apache/commons/io/output/DeferredFileOutputStream
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
org.apache.jsp.testupload_jsp._jspService(testupload_jsp.java:82)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


cause mère

java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream
org.apache.commons.fileupload.DefaultFileItemFactory.createItem(DefaultFileItemFactory.java:102)
org.apache.commons.fileupload.FileUploadBase.createItem(FileUploadBase.java:500)
org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:367)
org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:268)
org.apache.jsp.testupload_jsp._jspService(testupload_jsp.java:58)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


note La trace complète de la cause mère de cette erreur est disponible dans les fichiers journaux de Apache Tomcat/5.0.28.

Merci pour votre aide !
mojo9 Messages postés 46 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 16 mars 2006
24 oct. 2005 à 09:53
Ou alors tu n'as pas compilé les java fournis avec...
Sinon c'est normal que cela t'arrive...

Courage !!
Mprog Messages postés 11 Date d'inscription dimanche 23 février 2003 Statut Membre Dernière intervention 30 septembre 2009
23 oct. 2005 à 15:24
je croi qu'il te manque commons-fileupload-1.0.jar

tu le trouveras sur http://jakarta.apache.org/commons/fileupload/

voilà

bonne chance @++
kgadhi Messages postés 121 Date d'inscription mardi 9 août 2005 Statut Membre Dernière intervention 18 décembre 2007
22 oct. 2005 à 17:37
J'ai oublié de préciser que je développe sous NetBeans

Merci d'avance
kgadhi Messages postés 121 Date d'inscription mardi 9 août 2005 Statut Membre Dernière intervention 18 décembre 2007
22 oct. 2005 à 17:35
Bonjour,
J'ai récupéré votre code, j'ai copié les fichiers comme c'etait indiqué la haut mais rien ne marche.
il m'affiche le message d'erreurs:

org.apache.jasper.JasperException: Impossible de compiler la classe pour la JSP

Erreur de servlet générée:
C:\Documents and Settings\karim.TEST\.netbeans\4.0\jakarta-tomcat-5.0.28_base\work\Catalina\localhost\WebTest\org\apache\jsp\testupload_jsp.java:6: package org.apache.commons.fileupload does not exist
import org.apache.commons.fileupload.*;
^


Une erreur s'est produite à la ligne: 2 dans le fichier jsp: /testupload.jsp
Erreur de servlet générée:
C:\Documents and Settings\karim.TEST\.netbeans\4.0\jakarta-tomcat-5.0.28_base\work\Catalina\localhost\WebTest\org\apache\jsp\testupload_jsp.java:49: cannot find symbol
symbol : variable FileUpload
location: class org.apache.jsp.testupload_jsp
boolean isMultipart = FileUpload.isMultipartContent(request);
^


Une erreur s'est produite à la ligne: 2 dans le fichier jsp: /testupload.jsp
Erreur de servlet générée:
C:\Documents and Settings\karim.TEST\.netbeans\4.0\jakarta-tomcat-5.0.28_base\work\Catalina\localhost\WebTest\org\apache\jsp\testupload_jsp.java:56: cannot find symbol
symbol : class DiskFileUpload
location: class org.apache.jsp.testupload_jsp
DiskFileUpload upload = new DiskFileUpload();
^


Une erreur s'est produite à la ligne: 2 dans le fichier jsp: /testupload.jsp
Erreur de servlet générée:
C:\Documents and Settings\karim.TEST\.netbeans\4.0\jakarta-tomcat-5.0.28_base\work\Catalina\localhost\WebTest\org\apache\jsp\testupload_jsp.java:56: cannot find symbol
symbol : class DiskFileUpload
location: class org.apache.jsp.testupload_jsp
DiskFileUpload upload = new DiskFileUpload();
^


Une erreur s'est produite à la ligne: 2 dans le fichier jsp: /testupload.jsp
Erreur de servlet générée:
C:\Documents and Settings\karim.TEST\.netbeans\4.0\jakarta-tomcat-5.0.28_base\work\Catalina\localhost\WebTest\org\apache\jsp\testupload_jsp.java:61: cannot find symbol
symbol : class FileItem
location: class org.apache.jsp.testupload_jsp
FileItem item = (FileItem) itr.next();
^


Une erreur s'est produite à la ligne: 2 dans le fichier jsp: /testupload.jsp
Erreur de servlet générée:
C:\Documents and Settings\karim.TEST\.netbeans\4.0\jakarta-tomcat-5.0.28_base\work\Catalina\localhost\WebTest\org\apache\jsp\testupload_jsp.java:61: cannot find symbol
symbol : class FileItem
location: class org.apache.jsp.testupload_jsp
FileItem item = (FileItem) itr.next();
^
6 errors

est ce que vous pouvez m'aider svp car je suis un peu perdu
Et merci d'avance
mojo9 Messages postés 46 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 16 mars 2006
14 oct. 2005 à 14:23
Désolé Ademus, mais je crois fort que non, mais ton ecolution que tu a s trouver est forte interessante... je vais y jetter un oeil dés que j'ai un peut de temps...

Merci pour l'idée ;)
ademus Messages postés 16 Date d'inscription vendredi 17 novembre 2000 Statut Membre Dernière intervention 14 octobre 2010
13 oct. 2005 à 16:21
J aurais aimé savoir si ce module permet de choisir plusieurs fichiers à la fois avant envoi dans la fenetre de l explorer de fichiers (c a d, la fenêtre qui apparait lorsque on clique sur parcourir)?

Sinon y a ça aussi : http://the-stickman.com/web-development/javascript/upload-multiple-files-with-a-single-file-element/

Merci par avance
mbeaupoil Messages postés 4 Date d'inscription lundi 26 septembre 2005 Statut Membre Dernière intervention 29 septembre 2005
29 sept. 2005 à 18:00
Merci, ce programme est vraiment top.
Je suis revenu à Eclipse que je connais mieux (mais qui malheureusement prend un peu plus de ressources) et j'ai donc résolu mes problèmes de compilation et maintenant tout fonctionne parfaitement. Merci
mojo9 Messages postés 46 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 16 mars 2006
27 sept. 2005 à 16:27
Normalement les .class tu les met dans le repertoire "classes" qui doit se trouver dans "Web-inf".
De meme que tu as dans le "src" une arbo "org/apache/fileupload......"
tu doit avoir dans classes la meme arborescence : "org/apache/fileupload......"

Mais je connais pas du tt JBuilder, j'utilise Eclipse, mais tu doit surement avoir des proprieté pour ton projet qui reference l'endroit ou tu ranges tes classes...

Courage, robustesse...
mbeaupoil Messages postés 4 Date d'inscription lundi 26 septembre 2005 Statut Membre Dernière intervention 29 septembre 2005
27 sept. 2005 à 16:11
Bon j'ai réussi a compiler mais où faut il mettre les .class ?
J'ai essayé en les laissant au même endroit que les sources et j'obtiens toujours la même erreur !
mbeaupoil Messages postés 4 Date d'inscription lundi 26 septembre 2005 Statut Membre Dernière intervention 29 septembre 2005
27 sept. 2005 à 15:32
En fait, j'ai bien mis les .java la où il faut mais j'ai des problèmes pour compiler. J'utilise JBuilder depuis peu et là il me dit qu'il y a des problèmes au niveau de la déclaration du package. Je ne sais pas si ca vient de Jbuilder ou d'autre chose.
Est ce que tu sais utiliser JBuilder ?
mojo9 Messages postés 46 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 16 mars 2006
27 sept. 2005 à 14:52
tu as bien mis le dossier "org" avec tout ce qu'il y a dedans dans le web-inf/src ?
As tu bien recompilé tes javas ?

Si ils se trouvent bien au bon endroit, les jsp vont retrouver tes java...

Courage va, hesite pas en ca de pb... ;)
mbeaupoil Messages postés 4 Date d'inscription lundi 26 septembre 2005 Statut Membre Dernière intervention 29 septembre 2005
27 sept. 2005 à 14:41
Je ne comprends pas. J'ai fait absolment tout ce qui est écrit au dessus (dézipper le fichier et le mettre dans WEB-INF) mais ca ne marche toujours pas : voila mon erreur

Une erreur s'est produite à la ligne: 2 dans le fichier jsp: /test/testupload.jsp
Erreur de servlet générée:
FileUpload cannot be resolved

Une erreur s'est produite à la ligne: 2 dans le fichier jsp: /test/testupload.jsp
Erreur de servlet générée:
DiskFileUpload cannot be resolved or is not a type
.....
Apparamment il ne trouve pas les fichiers mais j'ai essayé de les mettre à d'autres endroits sans succès !
Ce code me serait très utile donc si quelqu'un sait quel est le problème, cela me serait d'une grande aide. Merci
thewolof1 Messages postés 1 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 22 septembre 2005
22 sept. 2005 à 15:37
pour le path du serveur, il y a un exemple qui offre une alternative:
http://www.theserverside.com/articles/content/HttpClient_FileUpload/article.html
Ainsi au lieu de getServletContext():

File tempFileRef = new File(fi.getName());
File fNew = new File(application.getRealPath("/"),tempFileRef.getName());
cs_vespucci Messages postés 3 Date d'inscription lundi 2 juin 2003 Statut Membre Dernière intervention 31 août 2005
31 août 2005 à 15:37
Super tu m'as bien dépanné pour mon stage!!! ca marche nickel!!!
Mprog Messages postés 11 Date d'inscription dimanche 23 février 2003 Statut Membre Dernière intervention 30 septembre 2009
20 août 2005 à 15:14
En théorie il est tout à fait possible d'utiliser un servlet au lieu d'un jsp car le serveur java comverti tout jsp en servlet avant l'execution.

le probleme que j'ai rencontré est de trouver le path du serveur(getServletContext().getRealPath("/")) ce qui est facile en jsp mais en servlet toutes les fonctions que je connais sont interdite par le compilateur ... (donc c'est un jsp qui me l'envoi xD)

sinon le reste c'est du copier coller en mettant une variable String pour les messages (à la place de request.setAttribute ) ou directement des print.
Au pire dans le repertoire temporaire du serveur tu trouvera la servlet issu de ton jsp et tu voi comment il le traduit ...

voilà
bonne prog @++
brunosite Messages postés 1 Date d'inscription jeudi 6 février 2003 Statut Membre Dernière intervention 17 août 2005
17 août 2005 à 22:34
ce serait possible de passer par un servlet au lieu d'un jsp?

merci
Mprog Messages postés 11 Date d'inscription dimanche 23 février 2003 Statut Membre Dernière intervention 30 septembre 2009
7 avril 2005 à 21:03
bonjour
il serait interressant de mettre un control des données.
Afin d'eviter les erreurs quand on met qu'un seul fichier dans un des champs testupload.html.

<%@ page import="org.apache.commons.fileupload.*, java.util.List, java.io.File, 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 {
if (!item.getName().equals("")){
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);
%>


voilà
bye

ps: j'ais passé du temp à comprendre pouquois votre exemple ne marchais pas xD (je developpe sur un vieux container jswdk 1.0.1, suffit de lui donner les bon packages et la bonne jdk)
2ny Messages postés 1 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 16 décembre 2004
16 déc. 2004 à 16:45
Salut,
Concernant le probleme d'accés, dans la ligne de code:

File savedFile = new File(pathFileServer, fullFile.getName());

Si tu oublies le param fullFile.getName() cela provoque la fameuse erreur d'acces DONC PARAM A NE PAS OUBLIER !!!


En tout cas le code marche ET JE TE REMERCIE mojo9! c bien cool. Par contre juste un truc :
J'ai vraiment du mal a savoir exactement ce qu'il fait.

voila voila
- 2ny -



PS : En ce qui concerne des lib je les ai directement pris sur le site de jakarta comme ca je n'ai pas eu besoin de les recompiler!
ChuiOuf Messages postés 1 Date d'inscription vendredi 1 octobre 2004 Statut Membre Dernière intervention 8 décembre 2004
8 déc. 2004 à 09:59
Bonjour tout le monde,

j'utilise actuellement JBuilderX et Tomcat 4.1.
J'ai bien suivie toutes les instructions et ya tout qui compile. Mon probleme vient du fait que je veux uploader, je n'ai pas les droits pour ecrire dans /tmp.
J'ai bien creer le repertoire. Voici l'erreur generee :

--------------------------------------------------------------------------------

type Rapport d''état

message D:\Sauvegarde\jbproject\JSPSimpleTutorial\JSPWebModule\tmp (Accès refusé)

description La ressource demandée (D:\Sauvegarde\jbproject\JSPSimpleTutorial\JSPWebModule\tmp (Accès refusé)) n'est pas disponible.


Si j'ai mal compris l'erreur, j'en suis bien desole mais g besoin d'aide. J'ai cherche un peu dans la configuration de Tomcat sans grand succes

merci pour vos reponses.
mojo9 Messages postés 46 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 16 mars 2006
6 oct. 2004 à 14:53
merci du message !!
Enfin quelqu'un qui arrive a le faire tourner correctement (lol) ca fait plaisir...

N'hésiter pas a laisser une note pour voir, et j'essayerais d'amélioré le tout!!

@+ mojo9...
bouezmarni Messages postés 1 Date d'inscription jeudi 19 août 2004 Statut Membre Dernière intervention 27 septembre 2004
27 sept. 2004 à 20:29
Bravo,
ça marche trés bien.
Merci
mojo9 Messages postés 46 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 16 mars 2006
26 août 2004 à 17:55
OK...
Bon je m'excuse de ne pas avoir donné de correctif rapidement mais le problème ne vient pas de la source...

Récapitulatif :
le dossier 'org' qui contient un dossier 'apache'...'commons'...'fileupload' et des '*.java' est a mettre impérativement dans le 'WEB-INF/src' de votre application. sinon...oulala !!!

les '*.jsp' sont a mettre dans le 'www' et comme le rappelle à juste titre poucy... ne pas oublié de créer un répertoire 'tmp'

Sinon je n'ai rencontré aucun pb a utilisé cette source puisque elle est utilisé environ 300 x par jour.

@ + et n'hésiter pas a donner de critiques... en meme temps moi j'ai fait que recopier ce que j'ai trouver sur le site de apache... mais on sait jamais...
caveline Messages postés 1 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 26 août 2004
26 août 2004 à 16:44
Salut cdolc,
apparemment tu t'es trompé de chemin, tu as du mettre le répertoire "org" dans "WEB-INF/src/file uplood" au lieu de la mettre directement dans "WEB-INF/src/". Essai donc de réparer cette erreur et dit nous en des nouvelles après avoir redémarrer ton serveur tomcat et avoir esseyer à nouveau.

L'erreur vient peut-être du fichier ZIP qui contient un répertoire "file upload", peut-être une modification du fichier à faire pour éviter cette petite mésaventure à d'autres utilisateurs.

A+
poucy Messages postés 1 Date d'inscription mercredi 25 août 2004 Statut Membre Dernière intervention 25 août 2004
25 août 2004 à 09:54
L'exemple fonctionne bien. J'ai mis dans le repertoire common.lib de tomcat le fichier 'commons-fileupload-1.0.jar'

Ainsi, il suffit de mettre dans le repertoire webbapps/[nom_repertoire] les fichiers testupload.html, testupload.jsp et msg.jsp, et on peut tester. Ne pas oublier de créer un repertoire 'tmp'.
daveCrocket Messages postés 10 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 30 juillet 2004
30 juil. 2004 à 15:02
ca vient peut-être de chez moi !

je suis débutant, donc j'ai dû oublier qq chose ...
mojo9 Messages postés 46 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 16 mars 2006
30 juil. 2004 à 11:09
Je regarde ce qui cloche et je mettrais un correctif bientot

ok?

En tout cas désolé pour la gene...
daveCrocket Messages postés 10 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 30 juillet 2004
30 juil. 2004 à 10:57
Salut mojo9,

tu marques :"Metter le dossier "org" dans le WEB-INF/src", mais c'est pas plutôt dans WEB-INF/classes, non ?


je n'arrive pas à faire fonctionner ton projet :o(

je lance TOMCAT, j'ouvre la page "testupload.html",
Je tappe un nom dans le premier champ, je sélectionne une image dans le deuxième (jpeg ou bmp), et je sélectionne un fichier quelconque dans le dernier champ.
et quand j'appuie sur le bouton, j'ai cette erreur :

--------------------------------------------------------------

type Rapport d'exception

message

description Le serveur a rencontré une erreur interne () qui l'a empêché de satisfaire la requête.

exception

org.apache.jasper.JasperException
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:346)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)


cause mère

java.lang.NullPointerException
org.apache.commons.fileupload.DefaultFileItem.write(DefaultFileItem.java:442)
org.apache.jsp.testupload_jsp._jspService(testupload_jsp.java:70)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:298)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)


note La trace complète de la cause mère de cette erreur est disponible dans les fichiers journaux de Apache Tomcat/5.0.25.
---------------------------------------------------------------

Je dû rater un épisode :o(
cdolc Messages postés 2 Date d'inscription mercredi 28 juillet 2004 Statut Membre Dernière intervention 29 juillet 2004
29 juil. 2004 à 13:43
ennow ca marche mais le probleme est que lorsque je lui met l image et le fichier il mle dit qu'il ne trouve pas le chemin specifie?

tu as eu le probleme

ps: je fais tourner le projet en local
mojo9 Messages postés 46 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 16 mars 2006
29 juil. 2004 à 11:27
je pense que tu as un probleme de complilation.

Essaye de recompliler le projet qui contient les classes org.apache.commons...

Mais a priori, tu devrais pas avoir ce soucis... bizzard...

J'ai beau regarder si il a queleque chose que j'ai oublié mais j'arrive pas a trouver quelque chose qui cloche.

Pour moi, c'est juste un soucis de complilation.

Suprime voir les servlet générés et relance ton tomcat.

Sinon, je peut pas t'en dire +....
cdolc Messages postés 2 Date d'inscription mercredi 28 juillet 2004 Statut Membre Dernière intervention 29 juillet 2004
29 juil. 2004 à 11:05
j'ai mis le le repertoire org dans WEB-INF/src

mais qd je lance il me dis

Erreur de servlet générée:
C:\Program Files\Apache Software Foundation\Tomcat 5.0\work\Catalina\localhost\file upload\org\apache\jsp\testupload_jsp.java:6: package org.apache.commons.fileupload does not exist
import org.apache.commons.fileupload.*;


tu sais pourquoi?
mojo9 Messages postés 46 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 16 mars 2006
22 juil. 2004 à 17:38
Salut daveCrocket,

Peut tu m'en dire plus a ce sujet...
OK, ca ne marche pas chez toi... mais a quel moment...

Peut etre n'y a t'il pas de dossier "tmp" ou ecrire les documents...

Fo m'en dire + alors..
daveCrocket Messages postés 10 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 30 juillet 2004
22 juil. 2004 à 17:14
Salut Mojo9,

je n'arrive pas à faire fonctionner ton projet :o(

y a t il une astuce qui m'aurait échappé ?
Rejoignez-nous