0

アップロードしてサーバーに保存した画像があります。この URL の周りに画像ウィジェットを作成したいと思います。私のアップロード メソッドは、画像の相対パスを返します (例: uploads/image.jpg)。

この画像にアクセスできる URL を生成しようとしています。このメソッドは開発モードで機能します。

String imagePath = uploads/image.jpg;
Image image = new Image(GWT.getHostPageBaseURL() + imagePath.replaceAll('//', '\'));

replaceAll は、Windows ファイル セパレータを URL セパレータに変換するために使用されます。これにより、Jetty サーバーにデプロイすると、URL http://localhost:8080/card-designer/uploads/image.jpgの画像が生成されます。画像が表示されません。

動的に作成された画像にアクセス可能な URL を作成することはできませんか? どんな助けでも大歓迎です。

4

1 に答える 1

0

私のアップロード メソッドは、画像の相対パスを返します

何に対して?ファイルはディスクのどこに保存されていますか? これは、jetty を構成する必要があるようです。この URL が画像に対応し、それを提供する必要があることを jetty に伝える必要があります。

Jetty ドキュメントの静的コンテンツの提供を参照してください。

簡単な解決策は、jetty.xml に次のようなものを追加することです。

<Configure class="org.mortbay.jetty.handler.ContextHandler">
  <Set name="contextPath">/upload</Set>
  <Set name="resourceBase"><SystemProperty name="jetty.home" default="."/>/upload</Set>
  <Call name="addHandler">
    <Arg>
      <New class="org.mortbay.jetty.handler.ResourceHandler"/>
    </Arg>
  </Call>
</Configure>

「resourceBase」パラメーターを、ディスク上のアップロード ディレクトリへのパスに置き換える必要があります。

それ以外の場合は、画像を取得して /upload/ にマップする独自のサーブレットを作成します。

埋め込まれた突堤はおそらくデフォルトで静的コンテンツのような未知のURLを提供するため、開発モードで動作していると思います。

于 2012-06-07T14:57:03.137 に答える