Java - Tiedostonsiirtopalvelu-palvelin

[Java] File Transfer Client-Server

Ongelma

Osana Java-sovellusta Web-sivustossa tarvitsen lomakkeen kautta, että käyttäjät voivat lähettää tiedostoja (mitä tahansa tyyppiä: Excel-työkirja, kuva ...) palvelimelle ja jälkimmäiset tallennetaan sen vuoksi hakemushakemistoon.

Minun ongelmani on nyt se, että tiedostoja ei palauteta täysin (hyvin mielestäni ne ovat, mutta minulla on ongelmia kirjoittamisen kanssa), selitän: kun lataan tiedoston "Blabla. Txt", jonka sisältö on "Hei, olemme torstai, 16. heinäkuuta 2009 ja taivas on aurinkoinen. ", Palvelimeen tallennettu tiedosto on:" Blabla.txt ", jonka sisältö on:" oju, naked omsl ed tl 6Jilt20 ileteslil. " kirje oli kirjoitettu vain kaksi. Kuvan tapauksessa en voi tehdä testiä, koska et voi katsoa sitä sen jälkeen, kun se on ottanut tämän reitin.

Tämä havainto saa minut ajattelemaan, että tämä on koodausongelma, mutta koska en tiedä mitään ... en voi olla varma.

Lyhyesti sanottuna tässä on minun koodi:

 boolean isMultipart FileUpload.isMultipartContent = (pyyntö); DiskFileUpload DiskFileUpload upload = new (); Luettelokohdat = null; try {upload.parseRequest items = (pyyntö); } Catch (FileUploadException e) {} String fileName = ((FileItem) items.get (0)). GetName (); fileName = nomFichier.substring (nomFichier.lastIndexOf ("") +1); Made InputStream = null; teki = (InputStream) ((FileItem) items.get (0)). getInputStream (); FileOutputStream fos = uusi FileOutputStream (uusi tiedosto ("MyFolder /" + fileName)); kun (fis.read ()! = -1) {fos.write (fis.read ()); } fos.close (); fis.close (); JSP: ssä lomake koodaa moniosaisen: 

Joten täällä, kun paljon tutkimusta päästä tähän pisteeseen, tällä kertaa olen kuollut ja minun tutkimus en avaa.

Jos tämä inspiroi sinua, anna minulle neuvoja ja jos olen väärässä menetelmässä ja on paljon helpompaa, älä epäröi! Kiitos lukemisesta ja hyvästä päivästä.

Ratkaisu

Ok, tajusin juuri tämän viestin lähettämisen jälkeen:

Teen kaksinkertaisen fis.readin (), joten normaali, että ohitin merkit ...

Olen niin häpeissään, mutta jätän tämän viestin, jos se voi auttaa jotakin. :)

Tämä korjasi kappaleen (vain ehdollinen silmukka):

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

Huomautus

Ratkaisi Asefthu

Edellinen Artikkeli Seuraava Artikkeli

Top Vinkkejä