Java - Transfert de fichiers client-serveur

[Java] Client-serveur de transfert de fichiers

Problème

Dans le cadre d’une application Web en Java, j’ai besoin, via un formulaire, de pouvoir envoyer des fichiers (n’importe quel type: classeur Excel, image, etc.) au serveur. Ce dernier est donc enregistré dans le répertoire de l’application.

Mon problème maintenant est que les fichiers ne sont pas entièrement restaurés (enfin, je pense qu’ils le sont, mais j’ai un problème d’écriture), j’explique: lorsque je télécharge le fichier "Blabla. Txt", dont le contenu est "Bonjour, nous sommes le jeudi, Le 16 juillet 2009 et le ciel est ensoleillé. ", Le fichier enregistré sur le serveur est:" Blabla.txt "avec le contenu:" oju, nu omsl ed tl 6Jilt20 ileteslil. "Peut être observé en se concentrant sur ce non sens une lettre n'a été écrite que deux. Dans le cas d'une image, je ne peux pas faire le test car vous ne pouvez pas la voir après avoir emprunté cette route.

Cette constatation me fait penser qu'il s'agit d'un problème d'encodage, mais comme je ne sais rien, je ne peux pas en être sûr.

En bref, voici mon code:

 boolean isMultipart FileUpload.isMultipartContent = (demande); DiskFileUpload DiskFileUpload upload = new (); Éléments de liste = null; essayez {upload.parseRequest items = (request); } Catch (FileUploadException e) {} String fileName = ((FileItem) items.get (0)). GetName (); nomFichier = nomFichier.substring (nomFichier.lastIndexOf ("\ \") +1); Made InputStream = null; did = (InputStream) ((FileItem) items.get (0)). getInputStream (); FileOutputStream fos = new FileOutputStream (nouveau fichier ("MyFolder /" + nom_fichier)); tandis que (fis.read ()! = -1) {fos.write (fis.read ()); } fos.close (); fis.close (); Au niveau de la JSP, le formulaire code en plusieurs parties: 

Donc ici, après beaucoup de recherches pour arriver à ce point, cette fois je suis mort et mes recherches ne sont pas débloquées.

Si cela vous inspire, donnez-moi s'il vous plaît des conseils et si je me trompe au sujet de la méthode et qu'il y a beaucoup plus facile, n'hésitez pas! Merci d'avoir lu et bonne journée.

Solution

Ok, j'ai réalisé juste après avoir posté ce message:

Je fais un double fis.read (), si normal que j'ai sauté des caractères ...

J'ai tellement honte mais je laisse ce message si cela peut aider certains. :)

Cela a corrigé la chanson (juste la boucle conditionnelle):

 int fisread fis.read = (); while (fisread! = -1) {fos.write (fisread); fisread fis.read = (); } 

Remarque

Résolu par Asefthu

Article Précédent Article Suivant

Les Meilleurs Conseils