存储过程&检索数据库中的图像

时间:2012-06-15 09:08:00

标签: java hibernate struts

我以前从未在数据库中保存和检索图像。我写下了我猜想的过程。我想知道这是否正确:

  

保存图片:

     
      
  1. 选择&从jsp(Struts 2)上传图像文件,将其保存为.tmp文件。
  2.   
  3. 将.tmp文件转换为byte []数组(Java Server-Side)
  4.   
  5. 将byte []数组存储为数据库(Java服务器端)中的blob
  6.         

    获取图片:

         
        
    1. 从数据库(Java服务器端)获取byte []数组
    2.   
    3. 将byte []数组转换为图像文件(Java Server-Side)
    4.   
    5. 在某个位置(Java服务器端)创建文件
    6.   
    7. 使用img标签显示文件(JSP客户端)
    8.   
    9. 完成使用后删除文件? (Java服务器端)
    10.   

我知道强烈建议不要保存&从数据库中检索图像。无论如何,我想知道该怎么做。

由于

2 个答案:

答案 0 :(得分:0)

差不多正确。

现在创建文件然后将其删除并不是很昂贵。

是的,您将其存储为数据库中的原始字节,但检索它并将其显示给客户端计算机的方法是实现一个Web处理程序,将响应的内容类型设置为适当的MIME类型和然后将字节转储到响应流。

答案 1 :(得分:0)

是的,你做得对。

保存图片:

保存图像的决定在很大程度上取决于进一步的使用。您有一个选项可以将文件保存在文件系统上。保存文件的位置应保存到数据库表中的元数据中。

获取图片:

您无需在任何临时位置找到正确的文件数据。它只能从数据库中轻松呈现。只需从客户端发送请求,并在空间设计的Servlet中拦截该请求。此Servlet将读取文件元数据和相应文件,如果成功,则将文件写回响应流。