2012-06-14 183 views
0

我剛剛學會了如何使用Struts 2文件上傳器上傳文件。上傳完成後,它將文件保存爲.tmp文件。將tmp文件保存到數據庫

我想將這個.tmp文件存儲在數據庫中,然後在服務器端檢索它,然後在客戶端將它顯示爲圖像(就是這樣)。

爲此,我使用一個byte []數組?

我該怎麼做?

編輯1: 我正在尋找的tmp文件轉換爲圖像以及在struts /客戶端代碼顯示圖像所需的Java服務器端代碼 - 即name="object.image"

+2

個人而言,我傾向於建議不要這樣做 - 將文件保存在文件系統上nd將數據回傳。 –

+0

不,謝謝... – ThreaT

+0

不是一個很好的方式去做... –

回答

1

嘗試使用這些類型The BLOB and TEXT Types

編輯

但戴夫·牛頓是對的!

簡單的代碼,只需要改變fileinputstreaminputstream

FileInputStream fis = null; 
    PreparedStatement ps = null; 
    try { 
     conn.setAutoCommit(false); 
     File file = new File("myPhoto.png"); 
     fis = new FileInputStream(file); 
     ps = conn.prepareStatement(INSERT_PICTURE); 
     ps.setString(1, "001"); 
     ps.setString(2, "name"); 
     ps.setBinaryStream(3, fis, (int) file.length()); 
     ps.executeUpdate(); 
     conn.commit(); 
    } finally { 
     ps.close(); 
     fis.close(); 
    } 

編輯1級

如果您正在尋找的代碼轉換TMP爲JPEG或其他圖像格式,只需讀取TMP並保存爲JPEG或其他圖片格式(我認爲你正在從客戶端接收圖片格式,但如果沒有tmp擴展名,我不認爲這個任務是真實的!)

+0

也許他是 - 這不是問題。我之前發佈的文件系統vs數據庫存儲。有一個原因,我使用數據庫,而不是文件系統... – ThreaT

+0

好吧,沒關係,你可以使用上面的代碼來存儲二進制文件在MySQL DB中。 –

+0

謝謝,你知道如何從數據庫中獲取圖像,然後使用struts在jsp上顯示它嗎? – ThreaT