使用JSP在浏览器中显示文件中的图像

时间:2014-04-03 10:57:45

标签: jsp

我需要使用JSP在浏览器中显示图像,但我不知道如何做到这一点。 photo.image是byte []。我怎样才能做到这一点?这是我的作业,但我不知道该怎么做: - |

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<html>
  <head><title>Nahrát fotku</title></head>
  <body>
  <h2>Fotky</h2>
  <jsp:useBean id="albumDAO" scope="application" type="cz.vse.javaee.album.AlbumDAO"/>
  <table>
      <c:forEach items="${albumDAO.photos}" var="photo">
      <tr>
          <td>${photo.name}</td>
          <td>${photo.description}</td>
          <td><img src="${photo.image}"></td>
      </tr>
      </c:forEach>
  </table>
  </body>
</html>

1 个答案:

答案 0 :(得分:0)

Google是您的朋友,您已拥有查找答案所需的所有信息。一些快速搜索将为您提供有关如何完成任务的多个示例。让我们从您的原始帖子中搜索几句话来搜索:

jsp display image from byte array

Google的第一页结果应该为您提供足够的信息以便您开始使用。我建议查看给出的示例并将它们合并到servlet中以获取图像数据或使用bean类中的base64编码字符串(例如:How to convert image to byte array and byte array to image in Java)。保持jsp的逻辑,继续使用表达式语言(EL)来提取它。 (EL是你jsp的$ {}表示法。)

编辑:

正如所指出的,这并没有直接回答这个问题,而是我试图指出答案可以通过简单的搜索轻松获得。我试图指出OP的方向可以帮助他们而不直接给出答案。

学习如何开发代码的一部分是反复试验。如果您不知道该怎么做,请在发布之前花点时间找到答案。在此示例中,答案可以在Google搜索的前几个结果中找到。

无论如何,我会根据引用的帖子How to convert image to byte array and byte array to image in Java发布一个答案。

正如Mr.Bool博客文章所解释的,以下代码片段将加载图像并将其转换为base64编码的字节数组。这可用于使用EL显示jsp上的图像:

public static void main(String args[]) {
    try{
      BufferedImage image = ImageIO.read(new File("icon.png"));
      ByteArrayOutputStream baos = new ByteArrayOutputStream();
      ImageIO.write(image, "png", baos);
      byte[] res=baos.toByteArray();
      String encodedImage = Base64.encode(baos.toByteArray());
              System.out.println(“The encoded image byte array is shown below.Please use this in your webpage image tag.\n”+encodedImage);
            }catch(Exception e) {
                e.printStackTrace();
                System.out.println(“Some problem has occurred. Please try again”);
            }
        }

    }
}

要在屏幕上显示图像,您将包含类似于Mr.Bool提出的以下示例的内容:

<HTML>
    <HEAD>
    <TITLE>csanuragjain</TITLE>
    </HEAD>
    <BODY>
        <img  src="data:image/png;base64,PASTE THE BYTE ARRAY HERE WHICH IS OBTAINED FROM JAVA PROGRAM" alt="IMG DESC">
    </BODY>
</HTML>

现在。要在bean类中使用,您需要创建一个方法,执行main方法中列出的相同逻辑并返回一个字符串(来自encodedImage输出)并用EL引用它。

相关问题