upload - Java - Programmation
Marsh Posté le 24-08-2004 à 13:05:32
ReplyMarsh Posté le 24-08-2004 à 14:38:14
oui mais j'utilise pas apache.
je suis sous IIS et mon moteur de servlet est REsin
Marsh Posté le 24-08-2004 à 15:13:52
ca n'a rien avoir avec le serveur HTTP apache ... apache c'est une organisation dont le serveur HTTP n'est qu'un des très (très très) nombreux projets.
le truc dont je t'ai filé le lien fonctionne avec n'importe quel moteur de servlet, dont Resin ...
Marsh Posté le 31-08-2004 à 10:28:24
Bonjour,
j'utilise ce package mais j'ai un problème lors de la reception de la requete. L'exception "the request doesn't contain a multipart/form-data or multipart/mixed stream, content type header is null" est levée lors de l'execution de:
List fileItems = fu.parseRequest(req);
Quequ'un a déjà eu ce problème et peut m'aider?
Merci d'avance
Cédric
Voici un extrait de mon code:
<HTML>
<HEAD>
<TITLE>Accueil</TITLE>
</HEAD>
<BODY BGCOLOR="#FDF5E6">
<H1 ALIGN="CENTER">Enregistrer un fichier sur le serveur</H1>
<FORM ACTION="./uploader" METHODE="POST" ENCTYPE="multipart/form-data">
Sélectionnez le(s) fichier(s) que vous souhaitez uploader.<br><br>
FICHIER1 : <INPUT TYPE="file" NAME="monFichier"><br>
<INPUT TYPE="submit" VALUE="Envoyer !">
</FORM>
</BODY>
</HTML>
et la méthode appelée par doPost de ma servlet:
public boolean gererFichiers(HttpServletRequest req) {
try {
DiskFileUpload fu = new DiskFileUpload();
fu.setSizeMax(1024 * 512); // 512 K
fu.setSizeThreshold(4096);
fu.setRepositoryPath("C:\\WUTemp" );
List fileItems = fu.parseRequest(req);
if (fileItems == null) {
return false;
}
//Iteration sur chaque fichier (au cas ou je modifie le HTML et ajoute plusieurs transferts)
Iterator i = fileItems.iterator();
FileItem enCours= null;
while (i.hasNext()) {
enCours = (FileItem) i.next();
String fileName = enCours.getName();
File fichier = new File(fileName);
fichier = new File("C:\\WUTemp\\" + fichier.getName());
enCours.write(fichier);
}
} catch (Exception e) {
System.out.println("Erreur de l'application " + e.getMessage());
return false;
}
return true;
}
Marsh Posté le 31-08-2004 à 13:38:02
bonjour,
Code :
|
et dans ta servlet:
Code :
|
dans ta jsp:
Code :
|
voila ca marche et java pour tous!
salut
Marsh Posté le 01-09-2004 à 09:57:02
Merci bragadocio,
je suis en train d'essayer ta méthode mais j'ai 2 questions:
-je ne dispose pas des Classes : MimeMultipart et MimeBodyPart. Elles proviennent d'un jar que tu as installé?
-Le code lit les fichiers de texte (if (bp.getContent() instanceof String)), comment lire si c'est une image qui est uploadée?
Merci.
Marsh Posté le 01-09-2004 à 13:09:55
bonjour,
1-
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
j2ee.jar(http://java.sun.com/j2ee/1.4/docs/api/index.html)
2- pour une image , laisse tomber le instanceof String, et remplace le avec un stream ou qlq chose comme ca , a priori ca dois marcher
salut
Marsh Posté le 24-08-2004 à 12:17:32
Salut,
je fais une appli web en utilisant des servlets.
je voudrais que mon aplli permette d'uploader des fichiers depuis le client sur le serveur.
J'ai fait des recherches je sais qu'au niveau du form, il faut mettre le type en muti-part.
Mais comment traiter le champ au niveau e ma servlet.
Je n'ai pas trouver en fait les classes qui me permettent de le manipuler.
Merci de m'indiquer une solution