Récupérer un champ texte dans un formulaire d'upload
Salut j'ai un formulaire qui permettra l'upload d'un fichier mais aussi l'enregistrement de 2 champs de texte, j'ai commencé par tester les champs textes mais lorsqu'il me les renvoie dans les formulaires les accents n'apparaissent pas normalement(é à la place de é par ex).
Voici mon formulaire :
Code:
1 2 3 4 5 6 7 8 9 10 11
| <form action="./EnvoiDocument#form" method="POST" enctype="multipart/form-data">
<input type="hidden" name="idMembre" value="<%= message.getIdMembre()%>" />
<div>Fichier à transmettre :</div>
<input type="file" name="fichier" value="" />
<div>Titre du message :</div>
<input type="text" name="titreMsg" value="<%= message.getTitreMsg()%>" size="30" maxlength="40" />
<div>Contenu du message :</div>
<textarea name="contenuMsg" rows="10" cols="100"><%= message.getContenuMsg() %></textarea>
<br/>
<input type="submit" value="Valider" name="kermit" />
</form> |
et mon code qui récupère les champs et en prévision de l'upload :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| public void getPostsDoc1(HttpServletRequest request) {
try {
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setSizeThreshold(Datas.MAXUPLOADSIZE);
factory.setRepository(new File("home/temp"));
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setSizeMax(Datas.MAXUPLOADSIZE);
List items = upload.parseRequest(request);
Iterator iter = items.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
if (item.isFormField()) {
String fieldName=item.getFieldName();
if(fieldName.equals("titreMsg")) {
this.titreMsg=item.getString();
} else if(fieldName.equals("contenuMsg"))
this.contenuMsg=item.getString();
}
}
} catch (FileUploadException ex) {
Logger.getLogger(Message.class.getName()).log(Level.SEVERE, null, ex);
this.setErrorMsg("ERREUR INTERNE FILEUPLOAD");
}
} |
j'ajoute qu'en debut de ma servlet je met bien :
Code:
1 2
| request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8"); |
Merci pour votre aide.