我使用Blob类型将图像存储在数据库中。现在我可以使用select从数据库中获取此图像。我想在我的jsp上显示这个图像。在Jsp中,我创建了一个表,并希望它成为列之一。
我有blob数据如何将其转换回图像并在jsp页面上显示。
由于
答案 0 :(得分:1)
只需使用ResultSet#getBinaryStream()
获取blob的InputStream
,然后立即将其写入HTTP响应的OutputStream
沿着正确的标头集。根据其他答案的建议,绝对不需要将它临时存储在磁盘上。
更多详细信息和完整的代码示例可以在this answer中找到。
答案 1 :(得分:0)
以下是两个选项:
选项1:
这可能不是最好的答案,但它会在紧要关头......
您需要使用InputStreamReader
从列中读取blob,然后创建FileOutputStream
,然后在“已创建”的images目录中创建该文件。例如,如果将图像文件存储在名为/pics
的目录中,则可以将文件写入名为/pics/generated
的目录中。
这种方法有一些缺点。例如,每次请求页面时都会生成一个文件。如果文件都有不同的名称,这可能会有效。
选项2:
您将使用InputStreamReader从SQL返回的行中读取blob。使用byte[]
作为流目标创建OutputStream。然后,只需将byte[]
写入JSP