我有一个字节数组图像。
我需要在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,我可以下载该图像并将其保存到我的电脑中
请帮忙
您在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);
所有浏览器都有一个右键单击-“将图像另存为…”菜单项,因此我不会在应用程序中实现此功能。