एक एप्लेट के लिए मैं काम कर रहा हूं मुझे BufferedImage
फ़ाइल को इनपुट स्ट्रीम में कनवर्ट करने की आवश्यकता है ताकि मैं छवि को अपने MySQL सर्वर पर अपलोड कर सकूं। मूल रूप से मैं इस कोड का उपयोग किया गया था:जावा एक फ़ाइल को बनाने के बिना एक इनपुट स्ट्रीम में कनवर्ट करना
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection connection =
DriverManager.getConnection(connectionURL, "user", "pass");
psmnt = connection.prepareStatement(
"insert into save_image(user, image) values(?,?)");
psmnt.setString(1, username);
ImageIO.write(image, "png", new File("C://image.png"));
File imageFile = new File("C://image.png");
FileInputStream fis = new FileInputStream(imageFile);
psmnt.setBinaryStream(2, (InputStream)fis, (fis.length()));
int s = psmnt.executeUpdate();
if(s > 0) {
System.out.println("done");
}
(जबकि प्रासंगिक अपवादों को पकड़ने) कोड हिस्सा है जहाँ एप्लेट कंप्यूटर करने के लिए छवि को बचाने के लिए प्रयास करता है पर लटका हुआ है। कोड ग्रहण में पूरी तरह से काम करता है या जब भी मैं लोकलहोस्ट से एप्लेट चलाता हूं, तो मुझे लगता है कि समस्या विशेषाधिकारों में है कि एप्लेट उपयोगकर्ता के कंप्यूटर पर फ़ाइलों को सहेजने में है।
मैं बस सोच रहा था कि छवि फ़ाइल को उपयोगकर्ता के कंप्यूटर पर फ़ाइल सहेजने के बिना इनपुटस्ट्रीम में बदलने का कोई तरीका था या नहीं। मैं उपयोग करने की कोशिश:
ImageIO.createImageInputStream(image);
लेकिन तब मैं ImageInputStream
वापस एक InputStream
में परिवर्तित नहीं कर सकता है। कोई सुझाव?
धन्यवाद!
argh! डेटाबेस से पढ़ता है जो वही कोड छवि प्रसंस्करण करता है !! वह भयानक है। कृपया पढ़ें: [Cohesion] (http://en.wikipedia.org/wiki/Cohesion_ (computer_science)), [कपलिंग] (http://en.wikipedia.org/wiki/Coupling_ (computer_science)) –
हाँ शायद यह है सबसे अच्छा अभ्यास नहीं है। जानकारी के लिए धन्यवाद, मुझे बाद में इसे ठीक करना होगा। – David
संभावित डुप्लिकेट [BufferedImage को इनपुटस्ट्रीम में कैसे परिवर्तित करें?] (Http://stackoverflow.com/questions/4251383/how-to-convert-bufferedimage-to-inputstream) –