如何在jsp中显示图像?

问题描述:

我有一个bytearray图像。如何在jsp中显示图像?

我需要显示在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,我可以下载图片并保存到我的电脑

请帮

+1

回应*我有一个图像清单,对应于特定的ID *的数据库,您需要唯一标识图像。 – 2011-03-09 10:05:13

+0

相关:http://*.com/questions/2340406/retrieve-multiple-images-from-mysql/2341322#2341322 – BalusC 2011-03-09 12:31:44

+0

@ jigar @BalusC这将是一个很大的帮助,如果你可以提供一些输入http:// *.com/questions/11124540/some-questions-related-to-implementation-of-image-inside-email-signature。提前致谢。 – 2012-06-20 18:01:17

您在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); 

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

+0

。当我调用GetImagesFromDatabase..wat时,我有一张图像列表 – jennifer 2011-03-09 09:59:53

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();