Java - File Transfer Client-Server

[Java] File Transfer Client-Server

Problema

Come parte di un'applicazione Web in Java, ho bisogno, tramite un modulo, di inviare file (qualsiasi tipo: cartella di lavoro Excel, immagine ...) al server e questi ultimi vengono quindi registrati nella directory dell'applicazione.

Il mio problema ora è che i file non sono completamente ripristinati (beh penso che lo siano, ma ho un problema con la scrittura), spiego: quando carico il file "Blabla. Txt", il cui contenuto è "Ciao, siamo giovedì, 16 luglio 2009 e il cielo è soleggiato. ", Quindi il file salvato sul server è:" Blabla.txt "con contenuto:" oju, naked omsled tl 6Jilt20 ileteslil. "Può essere osservato concentrandosi su questa assurdità che una lettera è stata scritta solo due. Nel caso di un'immagine, non posso fare il test perché non puoi vederlo dopo aver preso questa rotta.

Questa scoperta mi fa pensare che questo è un problema di codifica, ma dal momento che non so nulla ... non posso esserne sicuro.

In breve, ecco il mio codice:

 boolean isMultipart FileUpload.isMultipartContent = (richiesta); DiskFileUpload DiskFileUpload upload = new (); Elenca elementi = null; prova {upload.parseRequest items = (request); } Catch (FileUploadException e) {} String fileName = ((FileItem) items.get (0)). GetName (); fileName = nomFichier.substring (nomFichier.lastIndexOf ("\ \") +1); Made InputStream = null; did = (InputStream) ((FileItem) items.get (0)). getInputStream (); FileOutputStream fos = new FileOutputStream (new File ("MyFolder /" + fileName)); while (fis.read ()! = -1) {fos.write (fis.read ()); } fos.close (); fis.close (); Al JSP, il modulo codifica multipart: 

Quindi qui, dopo molte ricerche per arrivare a questo punto, questa volta sono morto e le mie ricerche non le sblocco.

Se questo ti ispira, ti prego di darmi dei consigli e se mi sbaglio sul metodo e c'è molto più facile, non esitare! Grazie per la lettura e buona giornata.

Soluzione

Ok, ho capito subito dopo aver postato questo messaggio:

Faccio un doppio fis.read (), così normale che ho saltato i personaggi ...

Mi vergogno così tanto ma lascio questo messaggio se può aiutare qualcuno. :)

Questo ha corretto la canzone (solo il ciclo condizionale):

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

Nota

Risolto da Asefthu

Articolo Precedente Articolo Successivo

I Migliori Consigli