Come visualizzare un’immagine in jsp?

Ho un’immagine bytearray.

Devo mostrare quell’immagine in formato jpg nella pagina jsp e mentre faccio clic sull’immagine, posso scaricare l’immagine sul mio pc:

Sto caricando l’immagine dal mio mysql db come array di byte ..

Il mio codice è

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 } 

Devo mostrare l’immagine in jsp come

ad esempio: image.jpg image2.jpg

e facendo clic su image.jsp, posso scaricare quell’immagine e salvarla sul mio pc

Per favore aiuto

L’HTML generato nel tuo JSP deve contenere un elemento img con un src che punta all’URL di un servlet o un’azione che caricherà l’immagine dal database e la invierà al stream di output con il tipo di contenuto image / jpeg.

 // in your HTML :  // 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); 

Tutti i browser hanno un clic con il pulsante destro del mouse – Salva immagine come …, quindi non lo implementerei nell’app.

JSP:

 
" width="117" height="160" onError="loadImage()" onAbort="loadImage()" />

Servlet // imageDisplayProcess

 imgByt = imageClass.getPhotograph();//return blob... response.setContentType("image/jpg"); response.getOutputStream().write(imgByt); response.getOutputStream().flush(); response.getOutputStream().close();