1

そこで、Spring Framework を使って簡単な Web アプリケーションを開発しています。

アプリケーションのユーザーは画像をアップロードできます。

画像の保存/読み込みのベスト プラクティスは何ですか?

誰かがファイルを user.dir ディレクトリに保存することを提案したフォーラムで解決策を見つけました。

わかりました、私もそうします。

ユーザーが画像をアップロードすると、画像が user.dir ディレクトリに保存されます。

さて、質問があります: user.dir ディレクトリからページに画像をロードする方法は?

 <img src="path/to/dir/where/images/stored"/>
4

2 に答える 2

0

最近、私たちのプロジェクトの 1 つで同様の状況が発生したため、すべてのユーザー プロファイルの写真をアプリケーション ディレクトリ内のフォルダーに保存することにしました。次に、サーブレットの実装でフォルダーへのパスを取得して、プラットフォームに依存しない実装をそこに配置できるようにしました。これにより、img を保存する必要があるたびに、動的に生成された img 名を他のプロファイルの詳細と共に db に保存したため、保存と取得は単なるdb ルックアップの問題であり、将来 img のディレクトリを変更する必要がある場合は、パス変数の値を更新するだけです。

それが役に立てば幸い

ではごきげんよう。..!!!

于 2014-09-15T12:00:12.860 に答える
0

ベスト プラクティスは、再デプロイの問題を回避するために、そのようなデータを webapp のツリーの外に格納することです。それらが正確にどこに格納されるかは慣例の問題であり、 user.dir は確かに合理的な選択です。

ただし、これらのファイルを直接提供することはできません。通常images/*は、リクエスト URL (eg <img src="approot/images/apic.jpg"/>) を解析し、その URL if fetches and serve に基づいて、 eg にマップされたサーブレットを作成することによって行われますpath/to/dir/where/images/stored/apic.jpg。追加のボーナスとして、サーブレットを使用すると、いつ、誰が、何をダウンロードするかを完全に制御できます。アプリケーションのライフサイクルの後半で、この種の制御が必要になる可能性があります。

getPathInfoを使用して、サーブレット名に続く URL の部分を取得し、出力に正しい MIME タイプを設定し、要求されたファイルをサーブレットの出力にストリームコピーできます。

このようなサーブレットのよく説明された一般公開された例は、BalusC のブログにあります。

于 2012-07-26T09:16:50.867 に答える