我想從Java Swift應用程序中保存圖像在MySQL數據庫中。我正在使用JFileChsoser來獲取圖像的路徑。然後轉換文件,以便它可以保存在BLOB類型的MySQL列中。但是我試圖保存的每張圖片都不能正確保存或正確轉換。有人能告訴我我在這裏做錯了什麼嗎?在Java中保存圖像從Java
private void btn_choosepicActionPerformed(java.awt.event.ActionEvent evt) {
JFileChooser picchooser = new JFileChooser();
picchooser.setDialogTitle("Select Image");
picchooser.showOpenDialog(null);
File pic=picchooser.getSelectedFile();
path= pic.getAbsolutePath();
txt_path.setText(path.replace('\\','/'));
try{
File image = new File(path);
FileInputStream fis = new FileInputStream(image);
ByteArrayOutputStream baos= new ByteArrayOutputStream();
byte[] buff = new byte[1024];
for(int readNum; (readNum=fis.read(buff)) !=-1 ;){
baos.write(buff,0,readNum);
}
userimage=baos.toByteArray();
}
catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}
}
然後在這之後,我把它保存到數據庫中,就像這樣。
private void btn_saveActionPerformed(java.awt.event.ActionEvent evt) {
String user= txt_username.getText();
try{
String sql="insert into imgtst (username,image) values ('"+user+"','"+userimage+"')";
pst=con.prepareStatement(sql);
pst.executeUpdate();
JOptionPane.showMessageDialog(null, "Saved");
}
catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}
}
,我已經聲明的變量userimage和路徑作爲一個全局變量
String path=null;
byte[] userimage=null;
這不是一個很好的做法,店面形象,在MySQL數據庫中的BLOB。您應該先將該文件(本例爲圖像)複製到應用程序文件夾,然後將該圖像的路徑存儲在數據庫中,而不是圖像作爲BLOB。 – dzeno 2013-02-23 01:39:11
不要在DB中存儲圖像。請將它們放在一個文件夾中,並將路徑存儲在數據庫中。 – Amarnath 2013-02-23 01:45:31
@dzeno我正在爲大學做一個項目。我按照你剛剛講的方式做了確切的方式。但一位心靈的朋友堅持將圖像存儲在MySQL數據庫中。所以才幫她出去。 – 2013-02-23 02:00:09