2016-11-10 2 views
0

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}}"/>

Antwort

1

Ihr Servlet-Code funktioniert für mich. Ich kann das Bild erfolgreich erstellen.

Ich nehme an, das Problem könnte höchstwahrscheinlich der Dateiname sein. Bitte geben Sie den Dateinamen wie folgt ein (d. H. Ohne 'e' in JPEG).

Es sollte funktionieren, wenn die Datei in dem lokalen Pfad vorhanden ist, den Sie beziehen.

pyjc4x0B.jpg 
Verwandte Themen