Ich bin mit Feder 4 und 4 überwintern zu und aus der Datenbank zu laden und abrufen Bild. Ich habe mehrteiliges Bild in Byte-Array konvertiert und in der Datenbank gespeichert. Meine Frage ist, wie das Bild aus Datenbank abgerufen werden und den Byte-Array in jsp anzuzeigen, ohne es in lokalem System zu speichern.Bild hochladen im Frühjahr mvc
Antwort
Da Sie Ihre DB-Struktur zum Speichern des Bildes nicht erwähnt haben, würde ich denken, dass Sie es in blob
Datentyp speichern.
Teil 1: ControllerClass
Nachdem das Bild von der db Abrufen kodieren dann das Bild Base64.encode
und Karte das Bild zu Ihrem jsp mit (mit 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
Teil 2: JSP
es dann durch Decodierung der Byte-Array,
<img id="myImg" name="myImg" src="data:image/jpg;base64,<c:out value='${myImage}'/>" >
wahrsten Sinne des Wortes, was wir tun, ist
in dao auf dem JSP
anzuzeigen Methode
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;
}
In-Service-Methode nur Input Rückkehr
In Controller an die Steuerung
@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;
}
jetzt schließen Sie einfach admin/user/{id}/Foto oder eine beliebige Zeichenfolge, die Sie wünschen in < img src verwenden = ""> solange sie übereinstimmen und du hast dein Foto
Sie können es ohne Probleme tun. Sie müssen einen Controller einrichten, der das Bild sendet, wenn ein Browser es anfordert. Aber hier bringt der Controller es nicht in ein Model, um es einer View zu geben, sondern generiert direkt die HTTP-Response. Dann geben Sie in Ihrer JSP einfach die relevante URL an.
hier ein (Teil-) ist Beispiel dafür, was es sein könnte:
@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. Hochladen mehrt Datei im Frühjahr Mvc, die mit Feder Sicherheit
- 2. Mehrere @PathVariable im Frühjahr MVC
- 3. @Named Annotation im Frühjahr MVC
- 4. Keine Bilder im Frühjahr MVC
- 5. Bind Karte im Frühjahr mvc
- 6. Sitzungstimeout im Frühjahr einstellen MVC
- 7. Autowire MongoRepository im Frühjahr MVC
- 8. Unable js im Frühjahr mvc
- 9. Unable Standardindexseite im Frühjahr mvc
- 10. JSON Datenbindung im Frühjahr mvc
- 11. Hochladen Bild in ASP.NET MVC
- 12. HandlerInterceptor.afterCompletion() im Frühjahr MVC ändert Antwortcode
- 13. Erforderlich MultipartFile-Parameter 'Datei' ist nicht im Frühjahr vorhanden mvc
- 14. Datenbindung einer abstrakten Klasse im Frühjahr-mvc
- 15. Mehrere Ansicht Resolvern im Frühjahr mvc
- 16. wie automatische Kontonr. im Frühjahr mvc
- 17. Nachbearbeitung einer Json Antwort im Frühjahr MVC
- 18. Externe Pfade Eigenschaften Datei im Frühjahr mvc
- 19. Daten Binding Fehler im Frühjahr mvc
- 20. Implementierung von JSONP im Frühjahr MVC 3.2
- 21. Objekte, die im Frühjahr MVC-Formular binden
- 22. HTTP-Status 404 - im Frühjahr MVC-Controller
- 23. Zugriff auf aktuelles Modell im Frühjahr-mvc
- 24. Füllen mehrerer Objekte im Frühjahr mvc
- 25. Füllen Datum Feld im Frühjahr MVC Formular
- 26. Wie 400 Fehler im Frühjahr behandelt MVC
- 27. Wie Antwort-Header im Frühjahr mvc setzen
- 28. Generieren Tag-Wolke im Frühjahr MVC
- 29. Rahmen Anfrage Teile im Frühjahr Test mvc
- 30. Null-EntityManger im Frühjahr reparieren MVC-Anwendung?
aus dem Zusammenhang gerissen Es ist besser, das Bild in der 'Platte path' zu laden, sondern mit Hilfe der Datenbank –
ich durch sie ging, aber in meinem Fall muss ich es in db speichern, irgendeine Lösung? –
Entschuldigung, ich bin nicht mit Hibernate vertraut. nur versuchen, diese http://stackoverflow.com/questions/24567553/save-and-retrieve-image-from-database-using-spring-mvc-and-hibernate-rest-servic und http://stackoverflow.com/questions/17384928/hibernate-how-to-abrufen-ein-Bild-aus-dem-Datenbank –