Jag rekommenderar starkt att du använder en av de befintliga modulerna som folk har byggt för hantering av filuppladdning i flera delar. Commons Fileupload är en av de mer populära, föreslår jag att du tittar på det (användningsexempel här ).
Din kod är ganska rörig och du blandar arbete med byte-arrayer och strängar på ett sätt som säkert skapar fel. Detta:
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));
är särskilt hårig. Hur som helst, om du insisterar på att göra det själv, bör du rensa upp din kod, blanda inte att arbeta med strängar och byte-arrayer (kom ihåg att ett tecken i en sträng inte nödvändigtvis bara är en byte). Jag rekommenderar det dock inte, såvida det inte är en lärorik upplevelse för dig. I så fall skulle jag ägna lite tid åt att försöka hitta någon exempelkod på internet för hantering av flerdelade formulär.