Для апплета, над которым я работаю, мне нужно преобразовать файл 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");
}
(при улавливании соответствующих исключений) Код висит на той части, где апплет пытается сохранить изображение на компьютере. Код работал отлично в Eclipse или всякий раз, когда я запускал апплет из локального хоста, поэтому я предполагаю, что проблема заключается в привилегиях, которые апплет имеет для сохранения файлов на компьютер пользователя.
Я просто задавался вопросом, есть ли способ превратить файл изображения во входной поток без необходимости сохранения файла на компьютер пользователя. Я попытался использовать:
ImageIO.createImageInputStream(image);
Но потом я не смог преобразовать ImageInputStream
обратно в InputStream
. Любые предложения?
Спасибо!