一尘不染

如何在jsp中显示图像?

jsp

我有一个字节数组图像。

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

我正在从我的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,我可以下载该图像并将其保存到我的电脑中

请帮忙


阅读 285

收藏
2020-06-08

共1个答案

一尘不染

您在JSP中生成的HTML必须包含一个img元素,该src指向一个servlet或操作的URL,该servlet或操作将从数据库中加载图像并将其发送到具有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);

所有浏览器都有一个右键单击-“将图像另存为…”菜单项,因此我不会在应用程序中实现此功能。

2020-06-08