2016-11-10 41 views
0

我已將一些圖像保存到本地pc路徑並將文件名保存到db。現在我想從數據庫加載所有圖像,並使用java腳本和百里香葉顯示到html頁面。瀏覽器說不允許加載本地資源,所以我在春季啓動時做了一個servlet。但它沒有顯示圖像。從本地來源加載動態圖像

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腳本的加載圖像

'<img src=imgServlet?admin='+articles.bannerImg+' class="img-responsive" />' 

錯誤我得到imgServlet:1 GET http://localhost/techtalks/admin/imgServlet?admin=pyjc4x0B.jpeg 404 (Not Found)

,我也想加載從本地資源圖像

thymeleaf html頁面

model.addAttribute("localImg", "E:\\picz\\assasins.jpg");彈簧控制器會像這樣傳遞Model,它會像這樣將圖像傳遞到各個文件到html頁面。

<img th:src="@{${localImg}}"/>

回答

1

你的servlet代碼爲我工作。我能夠成功獲取圖像。

我認爲這個問題很可能是文件名。請輸入文件名稱如下(即沒有'e'的JPEG格式)。

它應該工作,如果該文件存在於您所指的本地路徑中。

pyjc4x0B.jpg