Java - File Transfer Client-Server

[Java] Transfer File Client-Server

Isu

Sebagai bagian dari aplikasi Web di Jawa, saya perlu, melalui formulir, pengguna dapat mengirim file (tipe apa pun: buku kerja Excel, gambar ...) ke server dan yang terakhir dicatat dalam direktori aplikasi.

Masalah saya sekarang adalah bahwa file-file tersebut belum sepenuhnya dipulihkan (baik saya pikir memang begitu, tetapi saya punya masalah dengan penulisan), saya jelaskan: ketika saya mengunggah file "Blabla. Txt", yang isinya "Halo, kami Kamis, 16 Juli 2009 dan langit cerah. ", Maka file yang disimpan di server adalah:" Blabla.txt "dengan konten:" oju, telanjang omsl ed tl 6Jilt20 ileteslil. " sebuah surat hanya ditulis dua. Dalam hal gambar, saya tidak dapat melakukan tes karena Anda tidak dapat melihatnya setelah mengambil rute ini.

Temuan ini membuat saya berpikir bahwa ini adalah masalah pengkodean, tetapi karena saya tidak tahu apa-apa ... Saya tidak yakin.

Singkatnya, ini kode saya:

 boolean isMultipart FileUpload.isMultipartContent = (permintaan); DiskFileUpload DiskFileUpload unggah = baru (); Daftar item = nol; coba {upload.parseRequest items = (permintaan); } Catch (FileUploadException e) {} String fileName = ((FileItem) items.get (0)). GetName (); fileName = nomFichier.substring (nomFichier.lastIndexOf ("\ \") +1); Membuat InputStream = null; did = (InputStream) ((FileItem) items.get (0)). getInputStream (); FileOutputStream fos = FileOutputStream baru (File baru ("MyFolder /" + fileName)); while (fis.read ()! = -1) {fos.write (fis.read ()); } fos.close (); fis.close (); Di JSP, formulir mengkodekan multipart: 

Jadi di sini, setelah banyak penelitian untuk sampai ke titik ini, kali ini saya mati dan penelitian saya tidak terbuka.

Jika ini menginspirasi Anda, tolong beri saya saran dan jika saya salah tentang metode ini dan ada jauh lebih mudah, jangan ragu! Terima kasih sudah membaca dan selamat siang.

Larutan

Oke, saya baru sadar setelah memposting pesan ini:

Saya melakukan fis.read ganda (), sangat normal sehingga saya melewatkan karakter ...

Saya sangat malu tetapi saya meninggalkan pesan ini jika bisa membantu. :)

Itu memperbaiki lagu (hanya loop kondisional):

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

Catatan

Dipecahkan oleh Asefthu

Artikel Sebelumnya Artikel Berikutnya

Tips