有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何使用Struts2在blob类型的列中保存我的sql中的图像?

我有一个Struts2 jsp页面,我正在发送一个图像,在提交表单后,临时文件路径将提交到我的java类中,但我不知道如何通过将该路径更改为Blob类型将其保存在db中。。请考虑我的数据库表中的Buffic类型的图像列。

以下是提交表单后我在Javaclass中得到的输出:

我的图像路径:

F:\Documents and Settings\软件。netbeans\7.0\apache-tomcat-7.0.11_base\work\Catalina\localhost\AIGSA\upload\uuuuuuu214d4f3e\u136e8b74d9c\uuuu7fff_00000021。TMP105542

文件名: *冬天。jpg

代码:

for (File u: repImage) 
{
    System.out.println("*** "+u+"\t"+u.length());
}

int saveToDb= mo.addMembers(memberName, repImage);

我怎样才能将我的表单图像发送到这个{repImage Name,这样就可以很容易地将其保存到我的数据库中


共 (2) 个答案

  1. # 1 楼答案

    我不确定,但请尝试:

    int saveToDb= mo.addMembers( memberName, repImage.getBytes() );
    
  2. # 2 楼答案

    如果我正确理解了您的问题,您希望将二进制数据存储在数据库中。首先,我认为这是一个坏主意,原因有很多。更好的方法是引用一个相对路径,然后可以直接在web应用程序或文件系统中使用。更好的是,只需在Amazon/S3中存储您想要保存/使用它的位置的引用

    无论如何,要回答您的问题,您需要使用ByteArrayOutputStream