Java - odjemalski strežnik za prenos datotek

[Java] Client-Server za prenos datotek

Težava

Kot del spletne aplikacije v Javi potrebujem preko obrazca, da lahko uporabniki pošljejo datoteke (kakršne koli vrste: Excelov delovni zvezek, sliko ...) na strežnik, slednji pa so shranjeni v imeniku aplikacij.

Moja težava je zdaj, da datoteke niso v celoti obnovljene (mislim, da so, ampak imam problem s pisanjem), razložim: ko prenesem datoteko "Blabla. Txt", katere vsebina je "Zdravo, smo četrtek, 16. julij 2009 in nebo je sončno. ", Potem je datoteka shranjena na strežniku:" Blabla.txt "z vsebino:" oju, goli omsl ed tl 6Jilt20 ileteslil. " pismo je bilo napisano le dva. V primeru slike ne morem opraviti preizkusa, ker ga ne morete videti po tej poti.

Zaradi te ugotovitve mislim, da je to problem kodiranja, vendar ker ne vem nič ... ne morem biti prepričan.

Na kratko, tukaj je moja koda:

 boolean isMultipart FileUpload.isMultipartContent = (zahteva); DiskFileUpload DiskFileUpload upload = novo (); Seznam elementov = nič; poskusite {upload.parseRequest items = (zahteva); } Catch (FileUploadException e) {} String fileName = ((FileItem) items.get (0)). GetName (); fileName = nomFichier.substring (nomFichier.lastIndexOf ("\ t Made InputStream = null; did = (InputStream) ((FileItem) items.get (0)). getInputStream (); FileOutputStream fos = novo FileOutputStream (nova datoteka ("MyFolder /" + fileName)); medtem (fis.read ()! = -1) {fos.write (fis.read ()); } fos.close (); fis.close (); V JSP obrazec kodira večdelni del: 

Torej, tukaj sem po mnogih raziskavah, da pridem do te točke, tokrat sem mrtev in moje raziskave ne odklenem.

Če vas to navdihuje, prosim, dajte mi nasvete in če se motim glede metode in je veliko lažje, ne oklevajte! Hvala za branje in dober dan.

Rešitev

Prav, takoj ko sem objavil to sporočilo, sem spoznal:

Naredim dvojni fis.read (), tako normalno, da sem preskočil znake ...

Tako me je sram, vendar pustim to sporočilo, če lahko pomaga. :)

To je popravilo pesem (samo pogojno zanko):

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

Opomba

Rešeno z Asefthu

Prejšnji Članek Naslednji Članek

Top Nasveti