【问题标题】:How to display an image in jsp?如何在jsp中显示图片?
【发布时间】:2011-07-11 18:03:30
【问题描述】:

我有一个字节数组图像。

我需要在 jsp 页面中以 jpg 格式显示该图像,并且在单击图像时,我可以将图像下载到我的电脑:

我正在从我的 mysql 数据库中加载图像作为字节数组..

我的代码是

     ResultSet res = statement.executeQuery("SELECT * FROM 
   upload_data where user_id = "+userID);
   while (res.next()) {

 contactDetails = new ContactDetails();

contactDetails.setContactPhoto(res.getBytes("photo"));

byteArrayBackToImage1(res.getBytes("photo"));
 contactsList.add(contactDetails);
}

public void byteArrayBackToImage1(byte[] imageInByte){
try{

     Random rand = new Random();
        int numNoRange = rand.nextInt();
        String number = String.valueOf(numNoRange);
    //convert byte array back to BufferedImage


    InputStream in = new ByteArrayInputStream(imageInByte);
    BufferedImage bImageFromConvert = ImageIO.read(in);
    System.out.println("bImageFromConvert : "+bImageFromConvert);

    /*ImageIO.write(bImageFromConvert, "jpg", 
             new File("c:\\"+number+".jpg")); */


}catch (Exception e) {
    // TODO: handle exception
}

我需要在jsp中显示图片为

例如:image.jpg image2.jpg

通过点击 image.jsp ,我可以下载该图像并将其保存到我的电脑中

请帮忙

【问题讨论】:

标签: java jsp servlets


【解决方案1】:

您在 JSP 中生成的 HTML 必须包含一个带有 src 的 img 元素,该元素指向一个 servlet 或操作的 URL,它将从数据库加载图像并将其发送到具有 image/jpeg 内容类型的输出流。

// in your HTML :
<img src="/getImage.action?imageId=${id_of_the_image}"/>

// in the servlet mapped to /getImage.action:
// get the ID of the image from the request parameters
String imageId = request.getParameter("imageId");
byte[] imageData = getImageFromDatabase(imageId);
response.setContentType("image/jpeg");
response.getOutputStream().write(imageData);

所有浏览器都有一个右键单击 - 将图像另存为...菜单项,所以我不会在应用程序中实现它。

【讨论】:

  • 。当我调用 GetImagesFromDatabase..wat 时,我有一个图像列表
【解决方案2】:

JSP:

<div id="profileDiv" style="padding: 10px; border: solid 2px #D6D6D6;">
     <img src="imageDisplayProcess.do?pKey=<c:out value="${staff.staffId}" />"
                             width="117" height="160"
                             onError="loadImage()" onAbort="loadImage()" />
</div>

Servlet //imageDisplayProcess

imgByt = imageClass.getPhotograph();//return blob...
response.setContentType("image/jpg");
response.getOutputStream().write(imgByt);
response.getOutputStream().flush();
response.getOutputStream().close();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-28
    • 1970-01-01
    • 2017-01-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多