我需要插入一行Blob列,這是從本地硬盤中的URL獲取的圖像。我的嘗試是:使用Java在數據庫中插入圖像
File file = new File(imageURL);
FileInputStream input;
byte[] data = null;
try {
input = new FileInputStream(file);
data = new byte[input.available()];
input.close();
} catch (Exception e) {
e.printStackTrace();
}
然後,我建我的圖片對象:imagen畫質IMA =新的imagen畫質(0,數據,新的Date());我將它發送給另一位經理。我得到轉換的字節[]爲BLOB對象是這樣的:
byte[] datos = image.getDatos();
Blob blob = null;
try {
blob = conection.createBlob();
blob.setBytes(1,datos);
} catch (SQLException e) {
e.printStackTrace();
}
java.sql.Date sqlDate = new java.sql.Date(image.getFecha().getTime());
String query = " INSERT INTO imagen VALUES('" + image.getId() + "','"
+ blob + "','" + sqlDate + "') ";
int lastID = BBDD.add(query, conection);
我可以運行沒有問題,但我只得到這樣的「[email protected]」和我的MySQL doesn' t顯示我的其他東西。
任何人都可以幫助我嗎?我使用SQLyog來查看它。
謝謝!
你還有另外一個問題:'InputStream.available()'確實沒有**告訴你輸入流包含多少個字節。而且你甚至沒有從代碼中的輸入流中讀取數據(這樣做你必須調用'read()'方法) –