Jeg anbefaler på det kraftigste, at du bruger et af de eksisterende moduler, folk har bygget til håndtering af filoverførsel i flere dele. Commons Fileupload er en af de mere populære, foreslår jeg, at du kigger nærmere på det (brugseksempel her ).
Din kode er ret rodet, og du blander arbejde med byte-arrays og Strings på en måde, der med sikkerhed vil skabe fejl. Dette:
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));
er særligt behåret. Uanset hvad, hvis du insisterer på at gøre det selv, bør du rydde op i din kode, lad være med at blande arbejde med Strings og byte-arrays (husk, at et tegn i en streng ikke nødvendigvis kun er en byte). Jeg anbefaler det dog ikke, medmindre dette er en lærerig oplevelse for dig. I så fald ville jeg bruge lidt tid på at prøve at finde et eksempel på en kode på internettet til flerdelt formularhåndtering.