アプレットについては、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);
しかし、私はInputStream
にImageInputStream
バックを変換することができませんでした。助言がありますか?
ありがとうございます!
argh!データベースから読み込むのと同じコードが画像処理を行います!それはぞっとする。 [Cohesion](http://en.wikipedia.org/wiki/Cohesion_(computer_science))、[Coupling](http://en.wikipedia.org/wiki/Coupling_(computer_science)) –
これはおそらくベストプラクティスではありません。情報をありがとう、私は後でそれを修正する必要があります。 – David
[BufferedImageをInputStreamに変換する方法は?](http://stackoverflow.com/questions/4251383/how-to-convert-bufferedimage-to-inputstream) –