4

ユーザーが画像をアップロードできるユーザーフォームがあります。これらの画像をTomcatサーバーに保存し、画像名をデータベースに保存して、特定のユーザーの画像を取得します。

画像を保存するための私のコードは次のとおりです..

String filePath = getServlet().getServletContext().getRealPath("/") +"Images";
File folder = new File(filePath);
if(!folder.exists()){
 folder.mkdir();
 }
 String fileName = userForm.getUploadedFile().getFileName();
 System.out.println("Server path:" +filePath);
File newFile = new File(filePath, fileName);
                                              FileOutputStream fos = new FileOutputStream(newFile);
 fos.write(userForm.getUploadedFile().getFileData());
fos.flush();
fos.close();

ログイン後にユーザーのプロフィールページに保存した画像を表示したい..

プロフィールページでこんなことをしました。

<img src="http://localhost:8082/Images/${sessionUser.image}"/> 

しかし、私の画像は表示されません..

誰かガイドしてください..

4

2 に答える 2

2

webapp コンテナーの外部にあるファイル (画像、ビデオ、pdf など) にアクセスしようとしているため、サーバーからそのフォルダーへのリンクを作成する必要があります。これは、 Context要素の'docBase'および'path'属性を使用して実行できます。これを行う方法はいくつかあります ( Tomcat のドキュメントに記載されているすべての方法については、このリンクを参照してください)。私が見つけた最も簡単な方法は、Tomcat サーバーのHostタグの下の/apache-tomcat-8.0.36/conf/server.xmlファイルに次のコードを配置することです。.

<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
---------
---------
<Context docBase="/path/of/your/external/folder" path="/your_webapp_name/your/url"/>
---------
---------
</Host>

次のように、ビュー ページの外部フォルダーにあるファイルに簡単にアクセスできるようになりました (/path/of/your/external/folder に IMAGE.jpeg という名前の画像があるとします)。

<img src="/your_webapp_name/your/url/IMAGE.jpeg" />

注:- eclipse 構成の tomcat サーバーを使用しているか、端末から tomcat を使用しているかに注意してください。どちらの場合も、適切な server.xml ファイルに変更を加えます。つまり、Eclipse で構成された Tomcat サーバーを使用している場合は、server.xmlEclipse がインストールされているホーム ディレクトリではなく、Eclipse の Servers ディレクトリ内のファイルに変更を加えます。

于 2016-12-18T14:23:11.893 に答える