Java - File Transfer Client-Server

[Java] File Transfer Client-Server

Problem

Som en del af en webapplikation i Java, har jeg brug for, via en formular, at brugere kan sende filer (enhver type: Excel-projektmappe, billede ...) til serveren, og sidstnævnte registreres derfor i applikationskataloget.

Mit problem er nu, at filerne ikke er fuldt restaureret (godt jeg tror de er, men jeg har et problem med at skrive), forklarer jeg: Når jeg uploader filen "Blabla. Txt", hvis indhold er "Hej, vi er torsdag Den 16. juli 2009 og himlen er solrig. ", Så er filen gemt på serveren:" Blabla.txt "med indhold:" Oj, nøgne omsl ed ed 6Jilt20 ileteslil. "Kan observeres ved at fokusere på denne vrøvl om at et brev blev skrevet kun to. I tilfælde af et billede kan jeg ikke afprøve, fordi du ikke kan se den, efter at den har taget denne rute.

Dette resultat får mig til at tro, at dette er et kodende problem, men da jeg ikke ved noget ... kan jeg ikke være sikker.

Kort sagt, her er min kode:

 boolsk erMultipart FileUpload.isMultipartContent = (anmodning); DiskFileUpload DiskFileUpload upload = new (); Listeposter = null; prøv {upload.parseRequest items = (request); } Catch (FileUploadException e) {} StringfilName = ((FileItem) items.get (0)). GetName (); fileName = nomFichier.substring (nomFichier.lastIndexOf ("\ \") +1); Made InputStream = null; gjorde = (InputStream) ((FileItem) items.get (0)). getInputStream (); FileOutputStream fos = ny FileOutputStream (ny fil ("MyFolder /" + filnavn)); mens (fis.read ()! = -1) {fos.write (fis.read ()); } fos.close (); fis.close (); Ved JSP formler formen multipart: 

Så her, efter meget forskning for at komme til dette punkt, denne gang er jeg død og min forskning, jeg ikke låser op.

Hvis dette inspirerer dig, vær venlig at give mig råd, og hvis jeg tager fejl i metoden, og det er meget nemmere, tøv ikke med! Tak for læsning og god dag.

Opløsning

Ok, jeg indså lige efter at have sendt denne besked:

Jeg gør en dobbelt fis.read (), så normal at jeg springede over tegn ...

Jeg skammer mig, men jeg forlader denne besked, hvis det kan hjælpe nogle. :)

Det korrigerede sangen (bare betinget sløjfe):

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

Bemærk

Løst af Asefthu

Forrige Artikel Næste Artikel

Top Tips