java - 如何使用 JSP 在 mysql 中显示 BLOB?

标签 java mysql jsp

在显示之前,我已将 BLOB 插入到 MYSQL 并成功。我使用此代码将 BLOB 显示到 JSP。

        Connection con = Koneksi.getKoneksi();
        String id = request.getParameter("id_pengurus");
        PreparedStatement ps = con.prepareStatement("select foto from pengurus where idpengurus = ?");
        ps.setString(1, id);
        ResultSet rs = ps.executeQuery();
        rs.next();
        Blob b = rs.getBlob("foto");
        response.setContentType("image/jpg");
        response.setContentLength((int) b.length());
        InputStream is = b.getBinaryStream();
        OutputStream os = response.getOutputStream();
        byte buf[] = new byte[(int) b.length()];
        is.read(buf);
        os.write(buf);
        os.close();

当我使用此代码将 SQL 中的 BLOB 显示到 JSP 时,它起作用了。 当我使用这段代码将MYSQL中的BLOB显示到JSP时,它不起作用。我应该采取什么解决方案?对不起,我的英语不好。先谢谢了。

最佳答案

Blob是二进制内容并且 JSPtext/html 。这意味着您不能组合它们,但是如果您询问如何使用 JSP/Servlet 提供图像那么您可以通过将其内容写入 response 的输出流来完成此操作,确保设置正确的标题 Content-Type: image/png或响应中类似的内容。

您可以有两个 JSP 文件。一个用于提供图像内容,另一个用于显示图像。

在第二个 JSP 中,有一个简单的 <img>标签就可以了。

<img src="/imagejsp.jsp"/>

这将显示图像。

关于java - 如何使用 JSP 在 mysql 中显示 BLOB?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38965627/

相关文章:

java - session 超时后重定向到前一个用户上次访问的页面

java - 在 JTextArea 上使用 setBounds 或 setLocation 不起作用

JavaFX - 在 ListView 中创建不可选择的项目

java - 在 Java 中扩展类时重载方法

java - struts2 Action 映射不正确

java - 如何在 Struts 2 中为每个做

java - 从java类调用管道oracle函数

php - 如何在 PHP 中插入后从 MYSQL 表中检索 ID

php - MySQL 查询 24 小时,00.00 - 23.59

php - 优化我的 Mysql 查询以获取库存状态