JSP将图像插入DB,将其显示给客户端

时间:2014-03-30 16:29:00

标签: image postgresql jsp

我想将图像插入数据库并在另一页中显示。我正在使用PostgreSQL数据库。

我的指南建议我将图像及其文件路径插入数据库中。显示时,代替src attrib of img标记放置数据库的路径。所以我可以得到任何帮助。

请指导我这个或给我链接类似的问题。

(我是最后一年的学生,觉得这个项目要求很难)。

1 个答案:

答案 0 :(得分:1)

您的指南完全正确。您应该学习的部分内容是解决问题:如何将一个大问题分解为许多更小,更简单的问题,您可以逐个解决。听起来它暗示着这一点,但希望你能够自己做到这一点,这是非常合理的。

您需要将其分解为步骤,并单独执行每个步骤。这就是除了最琐碎的编程任务之外的任何事情都必须完成的事情。

(目前尚不清楚是否要将图像数据存储在数据库中,或者只是文件系统路径,所以我假设您要编写文件到本地文件系统,只需将路径存储在数据库中。

无论如何,这应该是相当简单的JSP。要显示:

  • 一个JSP:
    • 检查图像ID的查询参数
    • 使用JDBC从数据库中获取文件系统上图像的关联路径(使用图像ID作为查询参数的简单SELECT
    • 以二进制流的形式打开文件系统上的图像;还要统计它的大小
    • 向客户端
    • 发送适当的HTTP标头,例如Content-Type: image/jpegContent-Length: image-length-in-bytes
    • 将图像输入流中的原始图像数据复制到发送到客户端的输出流
  • 另一个生成HTML并且其中包含<img src="/the/image/jsp?imageid=blah">链接的JSP。

如果您只需要提交一个JSP文件,则可以通过让JSP显示HTML页面(如果它没有收到任何查询参数)来组合这两个文件,如果它确实收到图像ID,则发送图像查询参数。

要插入:

  • 如果没有使用任何HTTP POST数据调用,则显示带有文件上载链接的HTML表单的一个JSP
  • 如果使用HTTP POST数据调用JSP: **发出JDBC INSERT来为数据库中的文件创建记录,但不提交 **使用JSP中提供的方法访问和解码POST数据 **从表单数据中提取所需的文件名,并将二进制输出流打开到具有该名称的文件系统上的文件 **将图像字节复制到该输出流中,如果需要,将URL解码(尽管JSP中的HTTP POST表单处理代码可能会将其解码为字节流) **刷新并关闭输出流 **使用JDBC INSERT提交事务。

您应该能够通过快速Google搜索找到大量的两个示例。如果你不能,那么适应其他编程语言的例子应该很容易。

对于插入,您必须仔细考虑错误情况。这是正确编程的很大一部分。

我故意不向您展示代码示例。如果你是最后一年的学生,你应该能够自己做。你不会知道你需要的一切,但是现在你应该知道如何在你需要知道的时候找出你不知道的东西。教程。文档。谷歌。编写测试程序来解决问题。 NetBeans / Eclipse中的方法名称自动完成。调整示例代码。你有很多选择。