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