2012-06-14 144 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