मैं दृढ़ता से सलाह देता हूं कि आप उन मौजूदा मॉड्यूलों में से एक का उपयोग करें जिन्हें लोगों ने मल्टीपार्ट फ़ाइल अपलोड हैंडलिंग के लिए बनाया है। Commons Fileupload अधिक लोकप्रिय है, मेरा सुझाव है कि आप इसे देखें (उपयोग उदाहरण यहां )
आपका कोड बहुत गन्दा है और आप बाइट सरणियों और स्ट्रिंग्स के साथ काम करना इस तरह से मिला रहे हैं जिससे त्रुटियाँ पैदा होना निश्चित है। यह:
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));
विशेष रूप से बालों वाली है। वैसे भी, यदि आप इसे स्वयं करने का आग्रह करते हैं, तो आपको अपना कोड साफ़ करना चाहिए, स्ट्रिंग्स और बाइट सरणी के साथ काम करना मिश्रण न करें (याद रखें, स्ट्रिंग में एक वर्ण केवल एक बाइट नहीं है)। हालांकि, मैं इसकी अनुशंसा नहीं करता, जब तक कि यह आपके लिए सीखने का अनुभव न हो। इस मामले में मैं मल्टीपार्ट फॉर्म हैंडलिंग के लिए इंटरनेट पर कुछ उदाहरण कोड खोजने और खोजने के लिए कुछ समय बिताऊंगा।