Как отобразить изображение в jsp? - PullRequest
3 голосов
/ 09 марта 2011

У меня есть изображение байтового массива.

Мне нужно показать это изображение в формате jpg на странице jsp, и, нажимая на изображение, я могу загрузить изображение на свой компьютер:

Я загружаю изображение из моей базы данных 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, я могу загрузить это изображение и сохранить его на моем компьютере

Пожалуйста, помогите

Ответы [ 2 ]

13 голосов
/ 09 марта 2011

HTML, который вы генерируете в своем JSP, должен содержать элемент img с src, указывающим на 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);

Все браузеры имеют щелчок правой кнопкой мыши - пункт меню Сохранить изображение как ..., поэтому я бы не стал реализовывать это в приложении.

4 голосов
/ 09 марта 2011

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>

Сервлет // imageDisplayProcess

imgByt = imageClass.getPhotograph();//return blob...
response.setContentType("image/jpg");
response.getOutputStream().write(imgByt);
response.getOutputStream().flush();
response.getOutputStream().close();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...