Ich habe einige Bilder auf lokalen Pfad von PC gespeichert und den Dateinamen in db gespeichert. Jetzt möchte ich das ganze Bild von db laden und html Seite mit Java Script und Thymemleaf anzeigen. Der Browser sagt, dass es nicht erlaubt ist, lokale Ressourcen zu laden. Also habe ich im Frühling einen Servlet gemacht. Aber es zeigt kein Bild.Laden dynamisches Bild von lokaler Quelle
Servlet
@WebServlet("/admin/imgServlet")
public class AdminImageServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
String urlImage = request.getParameter("admin");
response.setContentType("image/jpeg");
ServletOutputStream out;
out = response.getOutputStream();
FileInputStream fin = new FileInputStream("C:/Users/Public/Documents/" + urlImage);
BufferedInputStream bin = new BufferedInputStream(fin);
BufferedOutputStream bout = new BufferedOutputStream(out);
int ch = 0;
while ((ch = bin.read()) != -1) {
bout.write(ch);
}
bin.close();
fin.close();
bout.close();
out.close();
}
}
@Bean
public ServletRegistrationBean adminImageServlet() {
DispatcherServlet dispatcherServlet = new DispatcherServlet();
AnnotationConfigWebApplicationContext applicationContext = new AnnotationConfigWebApplicationContext();
applicationContext.register(AdminImageServlet.class);
dispatcherServlet.setApplicationContext(applicationContext);
ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(dispatcherServlet, "/admin/imgServlet");
servletRegistrationBean.setName("imgServlet");
return servletRegistrationBean;
}
Java Skript für das Laden Bild
'<img src=imgServlet?admin='+articles.bannerImg+' class="img-responsive" />'
Fehler ich erhalte imgServlet:1 GET http://localhost/techtalks/admin/imgServlet?admin=pyjc4x0B.jpeg 404 (Not Found)
Und ich will auch Bild von lokalen Ressourcen zu thymeleaf HTML-Seite laden
model.addAttribute("localImg", "E:\\picz\\assasins.jpg");
Spring Controller wird das Modell wie folgt übergeben und es wird das Bild an die entsprechende Datei zu HTML-Seite wie folgt übergeben.
<img th:src="@{${localImg}}"/>