Ich rate Ihnen dringend, eines der vorhandenen Module zu verwenden, die für das Hochladen von mehrteiligen Dateien erstellt wurden. Commons-Dateiupload eines der beliebtesten ist, schlage ich vor, dass Sie sich damit befassen (Verwendungsbeispiel hier ). ).
Ihr Code ist ziemlich chaotisch und Sie mischen die Arbeit mit Byte-Arrays und Strings auf eine Weise, die mit Sicherheit Fehler verursacht. Dies:
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));
ist besonders haarig. Wie auch immer, wenn Sie darauf bestehen, es selbst zu tun, sollten Sie Ihren Code bereinigen und die Arbeit mit Strings und Byte-Arrays nicht mischen (denken Sie daran, dass ein Zeichen in einem String nicht unbedingt nur ein Byte ist). Ich empfehle es jedoch nicht, es sei denn, dies ist eine Lernerfahrung für Sie. In diesem Fall würde ich einige Zeit damit verbringen, im Internet Beispielcode für die Handhabung mehrteiliger Formulare zu finden.