Saya sangat menyarankan Anda menggunakan salah satu modul yang ada yang telah dibuat orang untuk penanganan unggahan file multi-bagian. Unggah File Umum adalah salah satu yang lebih populer, saya sarankan Anda melihat ke dalamnya (contoh penggunaan di sini ).
Kode Anda cukup berantakan dan Anda mencampur bekerja dengan array byte dan String dengan cara yang pasti akan membuat kesalahan. Ini:
int boundaryLocation = file.indexOf(boundary, pos) - 4;
int startPos = ((file.substring(0, pos)).getBytes()).length;
int endPos = ((file.substring(0, boundaryLocation)).getBytes()).length;
...
fileOut.write(dataBytes, startPos, (endPos - startPos));
terutama berbulu. Bagaimanapun, jika Anda bersikeras melakukannya sendiri, Anda harus membersihkan kode Anda, jangan mencampur bekerja dengan String dan array byte (ingat, satu karakter dalam string tidak harus hanya satu byte). Saya tidak merekomendasikannya, kecuali jika ini adalah pengalaman belajar bagi Anda. Dalam hal ini saya akan meluangkan waktu untuk mencoba dan menemukan beberapa contoh kode di internet untuk penanganan formulir multi-bagian.