- ベストアンサー
ファイルアップロード
私は、今、Javaで作成しているシステム上に画像アップロード機能を作成しています。 これは、アップロードする画像と同時に、テキストデータを送信したかったので、JavaCommonsのFileUploadを使用せずに、 http://homepage3.nifty.com/uzblend/servlet/#x71 こちらを参考に画像ファイルアップロードを作成しました。 ここで一つ困ったことが起きました。 ファイルをアップロードをして、ページを参照しても、すぐには画像が更新されず、サーバを再起動しないと更新されないです。 なんとか解決する方法はないでしょうか。 開発環境 WindowsXP J2SE 5.0 Tomcat5.0
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
>ページを参照しても、すぐには画像が更新されず、サーバを再起動しないと更新されないです キャッシュが出てるって事はないですか? それとも画像自体が表示されないのですか? キャッシュが出てるのだとしたら、画像URLに現在時刻をクエリパラメータとして付与させると簡単なキャッシュ対策になります。 例 <img src="a.jpg?date=20070202127550">
その他の回答 (1)
- spieder
- ベストアンサー率59% (13/22)
ちょっと"サーバを再起動しないと更新されない"点で、 気になったんですが、ちゃんとファイルをcloseして いるでしょうか? たぶん、サーブレットからリソース(画像ファイル)が 開放されないので、更新されないんじゃないでしょうか? 再起動させることで、強制的にリソースが開放されるので 更新がかかるんじゃないかと予想してみました。 ファイルの保存を行っているところで、closeメソッドを 呼んでいることを確認してみてください。 http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/io/FileOutputStream.html#close()
お礼
すみません。もうこの件は、別のサーバを立てるということで、解決してしまいました。 ちなみに、closeメソッドを呼んでいるか確認してみたところ、しっかり呼んでいました。理由はやっぱりわかりません。 おそらく、apacheなんかと連携することで、解決することができると思います。
補足
画像をアップロードして、一度キャッシュを削除してから、 再度表示しようとしても元の画像なので、キャッシュではないと思われます。 ちなみにその方法を試してみましたが、ダメでした。 今、一時的な打開策として、画像だけ別のWebサーバに管理させてなんとか成功しました。 しかし、この方法はあまり好ましくないので、別の方法はないでしょうか。