2016-11-10 4 views
0

私はpcのローカルパスにいくつかのイメージを保存し、dbにファイル名を保存しました。今私はデータベースからすべての画像をロードし、HTMLスクリプトを使用してHTMLページを表示したいと思います。ブラウザはローカルリソースを読み込むことができないと言うので、私は春のブートでサーブレットを作った。しかし、それはイメージを表示しません。ローカルソースからの動的イメージの読み込み

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");スプリングコントローラーはこのようなモデルを渡し、このようなHTMLページにそれぞれのファイルに画像を渡します。

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

答えて

1

サーブレットコードは、私のために動作します。私はイメージを正常に取得することができます。

私はファイル名の可能性が高いと思われます。以下のようにファイル名を入力してください(jpegに 'e'を付けないでください)。

ファイルがあなたが参照しているローカルパスに存在する場合は、動作するはずです。

pyjc4x0B.jpg 
関連する問題