2016-04-23 11 views
0

私はWebプロジェクトを持っており、プロジェクトのWebフォルダ内にuploadedImageがあります。私はuploadedImageフォルダの中にある画像をロードしたい。 Tomcatサーバーにwarファイルをデプロイします。jspを使用してWebフォルダ内のフォルダに保存されている画像を読み込み

  <a href="home.jsp" class="btn btn-default bg-light-gray">Upload a new Image</a> 

     </div> 

    </div> 
    <% 
     String fname = (String) request.getAttribute("name"); 
    String pathImage = "C://bimla//Dev//java//OCRSystem//WebContent//uploadedImage//"; 
    System.out.print("uploaded image"+fname); 
     session.setAttribute("filename", fname); 
     fname = fname + ".jpg"; 
     System.out.println("with extension"+fname); 
     String path = ""; 
     if (request.getAttribute("name") != null) { 
      path = request.getAttribute("name").toString(); 
     } 
    %> 

    <div class="row"> 
     <div id = "display" class="col-lg-8 center-block modal-content"> 
     <img src="C:\\bimla\\Dev\\java\\OCRSystem\\WebContent\\uploadedImage\<%=fname%>" width="600" height="400"/> 


     </div> 

    </div> 

画像は表示されません。コピーを貼り付けると、ブラウザの画像のパスが正しく表示されます。あなたは何か考えていますか?

答えて

0

あなたのページはhttpで読み込まれています。最近では、幸いなことに、ウェブサイト(httpから入ってくるすべてのものなど)がローカルファイルシステム(例えば、file:///またはC:/で始まるURL)に対応できないというかなりの境界があります。

関連するノートでは、ファイルをWebアプリケーションのフォルダにアップロードすることができます。これは

  • セキュリティ
  • バックアップ
  • アップデート

はむしろ他の場所にアップロードし、ダウンロードサーブレットが含ま

  • 再配備のために悪いです。

    サイドノート:あなたは様々なケース(HTMLはしかし、そのような制限がありません)でのバックスラッシュをエスケープする\\を複製する必要があるかもしれませんが、あなたは、ディレクトリの区切り文字としてスラッシュを使用することを選択した場合、これはないあなたは間違いなくだけ(単一/を必要としますあなたの問題だが)

    クイックフィックス:httpで画像を読み込む必要があります。イメージがJSPと同じWebアプリケーション内にあると仮定すると、<img src="<%=request.getContextPath()%>/uploadImages/<%=fname%>">(または同様のもの - 確定的なステートメントに十分な情報を提供しない)を使用すると、httpでイメージがロードされます。これはあなたの現在の問題を迅速に修正するだけであることに注意してください。適切な修正は、上記の理由で、Webアプリケーションのディレクトリ外のフォルダ(またはデータベースまたはストレージ)に画像をアップロードすることです。

  • +0

    私は二重線を削除しますが、それでも画像は表示されません –

    +0

    これは単なる副次的なものでした。主な情報は、httpコンテンツとファイルコンテンツを混在させることです。動作しません。 –

    関連する問題