Je vous conseille fortement d'utiliser l'un des modules existants que les gens ont construits pour la gestion du téléchargement de fichiers en plusieurs parties. Commons Fileupload est l'un des plus populaires, je vous suggère de l'examiner (exemple d'utilisation ici ).
Votre code est assez désordonné et vous mélangez le travail avec des tableaux d'octets et des chaînes d'une manière qui ne manquera pas de créer des erreurs. Ceci :
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));
est particulièrement poilu. Quoi qu'il en soit, si vous insistez pour le faire vous-même, vous devez nettoyer votre code, ne mélangez pas le travail avec des chaînes et des tableaux d'octets (rappelez-vous, un caractère dans une chaîne n'est pas nécessairement un seul octet). Je ne le recommande pas cependant, à moins que ce ne soit une expérience d'apprentissage pour vous. Dans ce cas, je passerais un peu de temps à essayer de trouver un exemple de code sur Internet pour la gestion des formulaires en plusieurs parties.