@MultiPartConfig
वास्तव में कंटेनर के लिए सिर्फ एक मार्कर इंटरफेस है। जब सर्वलेट प्रारंभ किया गया है तो प्रदान किए गए एनोटेशन मानों को प्रॉक्सी ऑब्जेक्ट के साथ मैप किया जाता है। जब आने वाला अनुरोध एक मल्टीपार्ट/फॉर्म-डेटा है, तो अपलोड के कुछ हिस्सों को अनुरोध पर मैप किया जाता है, और कंटेनर एनोटेशन और अनुरोध के हिस्सों के मूल्यों के आधार पर आवश्यक कार्य करता है। इस प्रक्रिया को रोकने में आपके लिए कोई रास्ता नहीं है क्योंकि यह कंटेनर के गले में होता है। हालांकि, एक विकल्प है। इसे दूसरी बार एक फाइल सिस्टम ऑपरेशन करने की आवश्यकता है। चूंकि आपके पास सभी हिस्सों हैं, इसलिए आप फ़ाइल को पुनर्निर्माण कर सकते हैं और अपनी पसंद के स्थान पर इसे "पुनः अपलोड" कर सकते हैं। यह नीचे दी गई विधि की तरह कुछ दिख सकता है। ध्यान रखें, हालांकि मैं अपने खुद की एक सर्वलेट में जल्दी से इस परीक्षण किया अवधारणा यह स्पष्ट रूप से कोड पूरा नहीं हुआ है प्रदर्शित करने के लिए:
@Override
protected void doPost(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse)
throws ServletException, IOException {
httpServletResponse.setContentType("text/html");
PrintWriter printWriter = httpServletResponse.getWriter();
InputStream inputStream;
FileOutputStream fileOutputStream;
for (Part part : httpServletRequest.getParts()) {
inputStream = httpServletRequest.getPart(part.getName()).getInputStream();
int i = inputStream.available();
byte[] b = new byte[i];
inputStream.read(b);
String fileName = "";
for (String temp : part.getHeader("content-disposition").split(";")) {
if (temp.trim().startsWith("filename")) {
fileName = temp.substring(temp.indexOf('=') + 1).trim().replace("\"", "");
}
}
String uploadDir = "/temp";
fileOutputStream = new FileOutputStream(uploadDir + "/" + fileName);
fileOutputStream.write(b);
inputStream.close();
fileOutputStream.close();
printWriter.write("Uploaded file " + uploadDir + "/" + fileName + ".");
}
}
स्रोत
2013-10-13 02:02:18
के साथ इस साफ उदाहरण पर नजर आप @MultiPartConfig उपयोग कर रहे हैं और फिर एक क्रम फ़ाइल स्थान की जरूरत है आपके पास "पुनः अपलोड" करने के अलावा कोई अन्य विकल्प नहीं है भागों। –