Bonjour,
dans le cadre d'une application Web en Java, j'ai besoin que, via un formulaire, les utilisateurs puissent envoyer des fichiers (tout type : classeur Excel, image...) au serveur et que ces derniers soient donc enregistrés dans le répertoire de l'application.
Mon problème actuellement est que les fichiers ne sont pas entièrement restitués (enfin je pense qu'ils le sont, mais je dois avoir un problème au niveau de l'écriture), je m'explique : lorsque j'upload le fichier "Blabla.txt", dont le contenu est : "Bonjour, nous sommes le jeudi 16 Juillet 2009 et le ciel est ensoleillé.", le fichier alors sauvegardé sur le serveur est : "Blabla.txt" dont le contenu est : "oju,nu omsl ed 6Jilt20 tl ileteslil.", on peut remarquer en s'attardant sur ce charabia qu'une lettre sur deux est écrite seulement. Dans le cas d'une image, je ne peux pas faire de test car on ne peut plus la visualiser après qu'elle ait fait ce trajet.
Cette constatation me fait penser qu'il s'agit d'un problème d'encodage, mais comme je n'y connais rien... je ne saurais être certain.
Bref, voici mon code :
boolean isMultipart = FileUpload.isMultipartContent(request);
DiskFileUpload upload = new DiskFileUpload();
List<FileItem> items = null;
try {
items = upload.parseRequest(request);
} catch (FileUploadException e) {
}
String nomFichier = ((FileItem)items.get(0)).getName();
nomFichier=nomFichier.substring(nomFichier.lastIndexOf("\\")+1);
InputStream fis = null;
fis = (InputStream) ((FileItem)items.get(0)).getInputStream();
FileOutputStream fos = new FileOutputStream(new File("monDossier/"+nomFichier));
while(fis.read() != -1) {
fos.write(fis.read());
}
fos.close();
fis.close();
Au niveau de la JSP, le formulaire encode en multipart :
<form name="formfile" method="post" action="/adminnat/updateDocumentation" enctype="multipart/form-data">
<input type="file" name="fichierdoc">
<input type="submit" value="Valider">
</form>
Donc voila, après maintes recherches pour arriver jusqu'à ce point, cette fois je suis au point mort et mes recherches ne me débloquent pas. ><
Si cela vous inspire, n'hésitez pas à me donner des conseils et si j'ai tout faux sur la méthode et qu'il y a beaucoup plus simple, n'hésitez pas non plus! :)
Merci de m'avoir lu et bonne journée.
