के आकार का निर्धारण करें मेरी वर्तमान स्थिति है: मुझे एक फ़ाइल पढ़नी है और सामग्री को InputStream
में रखना है। इसके बाद मुझे InputStream
की सामग्री को बाइट सरणी में रखने की आवश्यकता है, जिसके लिए InputStream
का आकार आवश्यक है (जहां तक मुझे पता है)। कोई विचार?एक इनपुटस्ट्रीम
के रूप में अनुरोध किया है, मैं इनपुट धारा है कि मैं एक अपलोड की गई फ़ाइल
InputStream uploadedStream = null;
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
java.util.List items = upload.parseRequest(request);
java.util.Iterator iter = items.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
if (!item.isFormField()) {
uploadedStream = item.getInputStream();
//CHANGE uploadedStreambyte = item.get()
}
}
से बनाने रहा अनुरोध एक HttpServletRequest
वस्तु है, जो FileItemFactory
की तरह है और ServletFileUpload
अपाचे कॉमन्स FileUpload पैकेज से है दिखाएगा।
मैं वर्तमान में डेटाबेस में एक ब्लॉब फ़ील्ड में फ़ाइल को सहेजता हूं और मैं इसे एक बाइनरीस्ट्रीम (इनपुटस्ट्रीम के रूप में इनपुट) के रूप में भेजता हूं, अब मुझे एक बाइट सरणी में इनपुटस्ट्रीम की आवश्यकता होती है क्योंकि मुझे डेटा का हस्ताक्षर करने की आवश्यकता होती है और फ़ंक्शन केवल लेता है बाइट सरणी जैसा कि मैंने उल्लेख किया है, – ChronoXIII
item.get() आपको बाइट सरणी बनाता है। और प्रदर्शन के आकार के बारे में चिंता न करें जबतक कि आप कई एमबी छवियों के साथ काम नहीं कर रहे हैं। – akarnokd
यह मामला हो सकता है क्योंकि छवि किसी उपयोगकर्ता द्वारा अपलोड की जाती है, और मुझे सर्वर की तरफ ऑटो ट्रिम छवियों का कोई तरीका नहीं दिख रहा है। :( – ChronoXIII