0

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

保存图片:

  1. 从 jsp (Struts 2) 中选择并上传图像文件,这会将其保存为 .tmp 文件。
  2. 将 .tmp 文件转换为 byte[] 数组(Java 服务器端)
  3. 将 byte[] 数组作为 blob 存储在数据库中(Java 服务器端)

获取图像:

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

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

谢谢

4

2 回答 2

0

几乎正确。

动态创建文件然后删除它既昂贵又不太好。

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

于 2012-06-15T09:11:38.930 回答
0

是的,你没看错。

保存图片 :

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

获取图像:

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

于 2012-06-15T09:24:19.943 回答