Ik raad je ten zeerste aan om een van de bestaande modules te gebruiken die mensen hebben gebouwd voor het afhandelen van meerdelige bestandsuploads. Commons Fileupload een van de meest populaire is, raad ik je aan ernaar te kijken (gebruiksvoorbeeld hier ).
Je code is behoorlijk rommelig en je combineert het werken met byte-arrays en strings op een manier die zeker fouten zal veroorzaken. Dit:
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));
is bijzonder behaard. Hoe dan ook, als je erop staat om het zelf te doen, moet je je code opschonen, niet werken met Strings en byte-arrays (onthoud dat één teken in een string niet noodzakelijk slechts één byte is). Ik raad het echter niet aan, tenzij dit een leerervaring voor je is. In dat geval zou ik wat tijd besteden aan het vinden van een voorbeeldcode op internet voor het afhandelen van meerdelige formulieren.