2011-03-09 176 views
3

我有一個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://stackoverflow.com/questions/2340406/retrieve-multiple-images-from-mysql/2341322#2341322 – BalusC 2011-03-09 12:31:44

+0

@ jigar @BalusC這將是一個很大的幫助,如果你可以提供一些輸入http:// stackoverflow.com/questions/11124540/some-questions-related-to-implementation-of-image-inside-email-signature。提前致謝。 – 2012-06-20 18:01:17

回答

13

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

4

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