Utilizzo la molla 4 e l'ibernazione 4 per caricare e recuperare l'immagine da e verso il database. Ho convertito l'immagine multipart in array di byte e memorizzata nel database. La mia query è come recuperare quell'immagine dal database e visualizzare l'array di byte in jsp senza memorizzarlo nel sistema locale.Carica immagine in primavera mvc
risposta
Come non hai menzionato la tua struttura db per la memorizzazione dell'immagine, vorrei considerare che la stai memorizzando nel tipo di dati blob
.
Parte 1: ControllerClass
Dopo aver recuperato l'immagine dal db, quindi codificare l'immagine utilizzando Base64.encode
e mappare l'immagine al tuo jsp (utilizzando java.util.map
).
Map<String, Object> model = new HashMap<String, Object>();
model.put("myImage", Base64.encode(MyImage)); //MyImage (datatype 'byte[]') is the image retrieved from DB
return new ModelAndView("display", model); //display is the name of jsp on which you want to display image
Parte 2: JSP
Poi visualizzarlo sul JSP
decodificando l'array di byte,
<img id="myImg" name="myImg" src="data:image/jpg;base64,<c:out value='${myImage}'/>" >
letteralmente ciò che stiamo facendo è
in dao metodo
public InputStream get_user_photo_by_id(int id_user) throws Exception {
Blob blob_photo;
String sql = "Select b_photo_file from user_master where id_user = ?";
blob_photo = getJdbcTemplate().queryForObject(sql, new Object[] {id_user}, Blob.class);
if(blob_photo!=null)
return blob_photo.getBinaryStream();
else
return null;
}
Nel metodo di servizio solo tornare InputStream al controllore
controller
@ResponseBody
@RequestMapping(value = "admin/user/{id}/photo", method = RequestMethod.GET, produces = MediaType.IMAGE_JPEG_VALUE)
public byte[] testphoto(@PathVariable("id") int id_sys_user, HttpSession ses) throws Exception {
byte[] thumb = null;
InputStream in = UserOps.getUserPhotobyId(id_sys_user);
if(in!=null){
thumb = IOUtils.toByteArray(in);
}
return thumb;
}
ora basta collegare admin/user/{id}/foto o qualsiasi stringa che si desidera utilizzare in < img src = ""> finché corrispondono e hai la tua foto
Puoi farlo senza problemi. Devi impostare un controller che invierà l'immagine quando un browser lo richiede. Ma qui, il controller non lo mette in un modello per darlo a una vista, ma genera direttamente la risposta HTTP. Quindi nel tuo JSP, si indica semplicemente l'URL pertinente.
Ecco una (parziale) esempio di ciò che potrebbe essere:
@RequestMapping(value = "/img/{imgid}")
public void getFile(HttpServletRequest request, @PathVariable(value = "imgid") long imgid, HttpServletResponse response) throws IOException {
contentType = "img/png"; //or what you need
response.setContentType(contentType);
// find the image bytes into into byte[] imgBytes
response.setContentLength((int) imgBytes.length);
response.setStatus(HttpServletResponse.SC_OK);
OutputStream os = response.getOutputStream();
os.write(imgBytes);
}
- 1. Carica immagine contatto in bitmap
- 2. Carica immagine con ajax, HttpPostedFileBase è null Mvc Asp
- 3. Flask-RESTful - Carica immagine
- 4. immagine Caricamento in ASP.NET MVC
- 5. Richiesto RequestMapping in primavera MVC
- 6. modalità dev in primavera MVC
- 7. Campo nascosto in primavera MVC
- 8. Carica immagine in un tag img
- 9. Modulo Magento Carica immagine nell'amministratore
- 10. Carica immagine tramite modulo postale
- 11. Picasso Carica immagine dal filesystem
- 12. Come configurare primavera RestTemplate con SSL (in primavera @MVC)
- 13. Primavera 3.0 MVC MVC: tag view-controller
- 14. Ricerca locale dal controller in primavera MVC
- 15. Corrente di accesso Modello in primavera-mvc
- 16. Durata del controller in primavera MVC
- 17. Come implementare l'impaginazione in primavera MVC 3
- 18. Risolutori a vista multipla in primavera mvc
- 19. casella combinata in primavera web MVC
- 20. Come reindirizzare a POST in primavera MVC
- 21. come ottenere getServletContext() in primavera controller mvc
- 22. Android: WebView carica immagine/contenuto nel centro
- 23. Carica immagine direttamente tramite mySQL Command Line
- 24. Carica immagine, ridimensiona, archivia nel database, visualizza
- 25. Carica immagine dal framework iOS 8
- 26. Android Facebook SDK 3.0 carica immagine locale
- 27. Carica file di immagine multipla usando HttpURLConnection
- 28. HandlerInterceptor.afterCompletion() in primavera MVC modifica il codice di risposta
- 29. Carica file utilizzando Spring mvc e MockMVC
- 30. ASP.NET MVC - Carica un file con SignalR
Fuori contesto E 'meglio per caricare l'immagine nella path' 'del disco, piuttosto utilizzando il database –
sono andato attraverso di essa, ma nel mio caso ho bisogno di memorizzarlo in db, qualsiasi soluzione? –
scusa non ho familiarità con l'ibernazione. prova questo http://stackoverflow.com/questions/24567553/save-and-retrieve-image-from-database-using-spring-mvc-and-hibernate-rest-servic e http://stackoverflow.com/questions/17384928/hibernate-how-to-retrieve-an-image-from-the-database –