dポイントプレゼントキャンペーン実施中!

アップロードした画像の格納先について

お世話になります。
ユーザが画像をアップロードして、それを表示するプログラムを作成しています。
ただ、画像をどういうディレクトリに格納すればいいのか困っています。
現在は、例えば「test」というアプリケーションだとすると

test
+-images

というディレクトリ構成で、imagesディレクトリに格納するようにしています。
ですが、このtestというアプリケーション(test.war)をデプロイすると、imagesの中のデータが全て削除されてしまいます。おそらくは test.warがサーバー上で展開されるときに上書きされてしまうのではないかと思っていますが。
 そこで質問なのですが、
・このような場合に、test配下のディレクトリを画像の格納先にすることは正しい(一般的な)方法なのか
 ・もしそうだとしたら、デプロイ時に画像が削除されない方法はあるのか
 ・もしtest配下以外のディレクトリに格納するのが正しい場合は、htmlのimgタグでどのように画像へのパスを記述すればいいのか
・あるいは全く別の方法があるのか

を知りたいと思っています。
 Servlet,JSPを使っていまして、開発環境はTomcat5.5(Windows)です。ただ、本番環境はまだ決まっていないので、特定の AppServer、OSに依存しない方法を知りたいです。
 よろしくお願いいたします。

A 回答 (2件)

> Tomcat5.5で設定をしようとしているのですが、うまくいきません。


> server.xmlの中に下記を加えて再起動しました。
> <Server>
> (中略)
> <Context path="/test/images" docBase="C:\var\test\images"/>
> </Server>
> これで、C:\var\test\imagesにsup.jpgというファイルを置けば、
> http://localhost/test/images/sup.jpg

http://localhost/
なの?
http://localhost:8080/
とかじゃないのね?

私はservlet.xmlを編集はしたことないので私のやり方で説明するわ。

CATALINA_HOME\conf\Catalina\localhost\test#images.xml
を作ってファイルの中身は
<Context path="/test/images" reloadable="true" docBase="C:\var\test\images">
</Context>
こんな感じかしら。
    • good
    • 0
この回答へのお礼

ありがとうございました。できました!

お礼日時:2010/05/09 20:00

HTTPServerの設定に依存するわ。



たいていのサーバは
http://ドメイン/アプリ/images
というパスを好きなディレクトリに設定することができるわ。
逆に言うとそれができないサーバは選択肢に入れないべきね。
できないものを知らないけど。
    • good
    • 1
この回答へのお礼

ありがとうございます。
つまり、仮想ディレクトリを設定すればいい、ということでしょうか。
勉強になりました。

で、Tomcat5.5で設定をしようとしているのですが、うまくいきません。
server.xmlの中に下記を加えて再起動しました。

<Server>
(中略)
<Context path="/test/images" docBase="C:\var\test\images"/>
</Server>

これで、C:\var\test\imagesにsup.jpgというファイルを置けば、

http://localhost/test/images/sup.jpg

で画像が表示されるはずだと考えていたのですが、404が出ます。
 どこか他にも設定するところがあるでしょうか? それともこの設定が悪いでしょうか。

お礼日時:2010/05/06 16:37

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!