1

spring MVC ファイル アップロード機能を使用してファイルをアップロードしましたが、ファイルは /home/myfolder/images/ フォルダーにアップロードされています。ここで、これらのファイルをこの物理パスからダウンロードしたいと思います。私のjspでのテストのために、次の行を書きました

   <a href="<%=request.getSession().getServletContext().getRealPath("/home/images/image.jpg")%>" >download </a>

しかし、このリンクをクリックすると、URL にリダイレクトされます

    http://localhost:8080/home/myfolder/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/myproject/home/images/image.jpg.

保存した画像をダウンロードする方法を教えてください。この問題を解決するために他に必要なことがあればお知らせください。

4

2 に答える 2

4

これを使用してみてください:

<!-- Handles HTTP GET requests for /resources/ ** by efficiently serving up static resources -->
<mvc:resources mapping="/images/**" location="file:/home/images"/>
<!-- Allows for mapping the DispatcherServlet to "/" by forwarding static resource requests to the container's default Servlet -->
<mvc:default-servlet-handler/>

jsp で:

<img src="/images/image.jpg" />

スレッドは次のとおりです: Spring : コンテキストルート外で静的リソースを提供する

于 2012-09-02T07:16:31.777 に答える
2

Webapps フォルダー外のファイルは、アプリケーション コンテナーで提供できません。

いくつかの可能性:

1) アプリケーション コンテナーの Webapps フォルダーの下にあるフォルダーにアップロードします。例)

Webapps フォルダーが /home/myfolder/Tomcat/webapps/myApp/ の場合、/home/myfolder/Tomcate/webapps/myApp/upload/ にアップロードできます。

このようにして、アップロードされたファイルはアプリケーション コンテナーによって提供されます。

2) シンボリック リンクを使用して、アプリケーション コンテナがアップロード フォルダにアクセスできるようにします。これを機能させるには、コンテナーの構成を変更する必要がある場合があります。

3) アプリケーション コンテナー (httpd など) の前に Web サーバーを使用する場合は、Web サーバーに静的ファイルを提供させます。

4) 任意のファイルから読み取り、コンテンツをクライアントに提供する独自のサーブレットを作成します。

于 2012-09-02T06:20:05.030 に答える