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

このQ&Aのポイント
  • ユーザが画像をアップロードして、それを表示するプログラムを作成しています。画像をどういうディレクトリに格納すればいいのか困っています。
  • 現在は、例えば「test」というアプリケーションだとすると、test/imagesディレクトリに格納するようにしています。しかし、test.warをデプロイすると、imagesディレクトリのデータが削除されてしまいます。
  • 質問なのですが、このような場合に、test配下のディレクトリを画像の格納先にすることは正しい方法なのか。もしそうだとしたら、デプロイ時に画像が削除されない方法はあるのか。また、test配下以外のディレクトリに格納するのが正しい場合は、htmlのimgタグでどのように画像へのパスを記述すればいいのか。あるいは全く別の方法があるのか。Servlet, JSPを使用し、開発環境はTomcat5.5(Windows)です。
回答を見る
  • ベストアンサー

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

アップロードした画像の格納先について お世話になります。 ユーザが画像をアップロードして、それを表示するプログラムを作成しています。 ただ、画像をどういうディレクトリに格納すればいいのか困っています。 現在は、例えば「test」というアプリケーションだとすると test +-images というディレクトリ構成で、imagesディレクトリに格納するようにしています。 ですが、このtestというアプリケーション(test.war)をデプロイすると、imagesの中のデータが全て削除されてしまいます。おそらくは test.warがサーバー上で展開されるときに上書きされてしまうのではないかと思っていますが。  そこで質問なのですが、 ・このような場合に、test配下のディレクトリを画像の格納先にすることは正しい(一般的な)方法なのか  ・もしそうだとしたら、デプロイ時に画像が削除されない方法はあるのか  ・もしtest配下以外のディレクトリに格納するのが正しい場合は、htmlのimgタグでどのように画像へのパスを記述すればいいのか ・あるいは全く別の方法があるのか を知りたいと思っています。  Servlet,JSPを使っていまして、開発環境はTomcat5.5(Windows)です。ただ、本番環境はまだ決まっていないので、特定の AppServer、OSに依存しない方法を知りたいです。  よろしくお願いいたします。

  • annyG
  • お礼率70% (67/95)
  • Java
  • 回答数2
  • ありがとう数9

質問者が選んだベストアンサー

  • ベストアンサー
  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.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> こんな感じかしら。

annyG
質問者

お礼

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

その他の回答 (1)

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.1

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

annyG
質問者

お礼

ありがとうございます。 つまり、仮想ディレクトリを設定すればいい、ということでしょうか。 勉強になりました。 で、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が出ます。  どこか他にも設定するところがあるでしょうか? それともこの設定が悪いでしょうか。

関連するQ&A

  • SQLiteに画像を格納したい

    作りたいと思っているシステムは、テキストと画像をDBに格納し、編集と削除ができるような簡単なデータベースのようなものです。 そこで、DBにはSQLiteを使おうと思っているのですが、調べてみたところSQLiteに画像を格納するのはあまりよくない(できない?ややこしい?)というような記事などを目にしました。 実際のところはどうなのか、ということをお聞きしたいです。 画像はただ単純にサーバーにアップロードするような方法が望ましいのでしょうか。 どなたかご返答頂ければと思います。 どうぞよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • ckfinderの画像のアップロード先

    ckeditorとckfinderを利用してテキストエリアから画像のアップロードをしているのですが、 画像のアップロード先をユーザーごとに別ディレクトリに保存したいと考えています。 confing.phpの$baseUrlで設定した保存先を動的に変更することは可能でしょうか? 調べてみたのですが解決方法が見つからずご存知の方がいらっしゃいましたらアドバイスお願いいたします。

  • アップロードのときに画像が乱れます

    ブログやミクシーなどに画像をアップロードしようとすると画像が乱れてしまいます。 ファイルサイズや元の画像におかしな点はないのですが。。 何度かアップロードを繰り返せばちゃんとできるときもあります。 パソコンがバグっているのか、必要なアプリケーションを削除してしまった のか、それともウィルスにやられているのか。。 どなたか教えていただけると幸いです。

  • 画像だけアップロードされません。

    初歩的な質問で申し訳ないです。 FlashMXを使って動画を作成しました。 外部画像(imagesというフォルダを作成)を読み込む動画を作り、ffftpソフトを使用してアップロードをしたのですが、アップロードされたswfファイルには画像が読み込まれません。 (アップロード前のffftpの左側で動作確認すると問題ありません。) 素人で申し訳なく、今日も一日ネットで調べたりしてみましたが上手く出来ませんでした。 自分では、外部画像「images」のフォルダの階層を変えてみたり、バイナリに指定してアップロードしてみたり、訳分からず、index.htmlと名前を変更してみたりと色々試してみました。 ffftpソフトのアップロード後の画像ファイルを右クリックで「URLをクリップボードへコピー」としてみると「ftp://ftp.×××.jp/フォルダの名前/slideshow1/images/p04.JPG」 となっているので、これが原因ではないかと思ったりもしましたが、ファイル名の変更の方法なども分かりません。 自分なりに調べたのですが分からず、簡単な質問で申し訳ないのですが、本当に困っています。 どうぞ宜しくお願い致します。

  • 画像のアップロードについて

    画像をこのURLサイトhttp://imgur.com/9MhoRvYを使ってアップロードしたのですが、自分がアップロードした画像を削除したいのですが、削除する方法を教えてください

  • 画像のアップロードに関して

    お世話になっております。画像をブラウザ上からアップロードし、指定のディレクトリ(その都度mkdir関数によりディレクトリを生成)に保存するスクリプトを組んでおりますが、DBにファイル名(または保存先?)を登録するような内容を考えております。 そこでいくつか質問があり投函させて頂きます。 1・アップロードする際、クライアントのPC内にあるファイル名が日本語だった場合、そのままアップロードさせて問題が発生する事が考えられるか? 2・上記のように日本語である事を想定し、半角英数でリメイクするスクリプトを構築する場合、どのようなリメイクが適当で、どういったスクリプトを記述する事になるか? 3・アップロードさせる際、画像以外をアップロードしないよう規制をかけるにはどうしたら良いか? 4・ディレクトリに画像をアップロードさせる訳だが、後にブラウザ上にその画像を表示させるには、DBへ保存するのは、やはり<img src="…… といったコードを登録する事になるのか? の4点です。スキルが無くここ数日頭を悩ませながら、進んでは振り出しに戻るを繰り返しており、丸投げのつもりは一切無いのですが、ポイントをご指導いただければ幸いに思い、投函させて頂きました。 お手数お掛けいたしますが、ご教授のほど宜しくお願い申し上げます。

    • ベストアンサー
    • PHP
  • ファイルのアップロード先

    環境:PHP5&Apache2(&MySQL5)&XP ファイルをアップロードする場合、 http:///****/test/test01.php でtest01.phpがアップロードを行うファイルだった場合、 testフォルダに直接アップロードする方法はあるのでしょうか。 php.iniのupload_tmp_dirの記述で、アップロードフォルダを設定したあと、ファイルを移動するしかないのでしょうか。 アドバイスいただけると幸いです。

    • ベストアンサー
    • PHP
  • webアプリケーションでの画像ファイルの保存場所

    お世話になります。 Javaと、MySQLでウェブアプリケーションを作成していまして、ユーザーがアップロードしたファイルを どこのディレクトリに保存すればいいか悩んでいますので、教えてください。 ユーザーがログインし、自分のアイコンを設定した場合、 その画像ファイル(jpgなど)はどのフォルダに置いておけばいいのでしょうか? 例えば、imgフォルダにおいた場合、バージョンアップしたプログラムをデプロイすると、 サーバー内のimgフォルダ内のデータはなくなってしまうと思いますので、ユーザーがアップした画像などは そこに置いてはいけないと思います(バージョン・アップ時に消えてしまいますので)。 「デプロイしても消されない場所に置けばいい」ということでしょうか? 皆さんはどうされていますでしょうか? よろしくお願い致します。。

    • ベストアンサー
    • Java
  • 3日で作るPHPの本で画像アップロードするには?

    3日で作るPHPの本で画像アップロードするには? フォーム内 画像 <input type="file" name="image" size="40"><br> 下記内容でファイル内に保存する $upload_file = date("ymdHis")."_".basename($_FILES["image"]["name"]); $upload_path = "<保存先のディレクトリ名>".$upload_file; $upload_url = "./images/".$upload_file; move_uploaded_file($_FILES["image"]["tmp_name"],$upload_path); 以上のように表記してありましたが、 表示の仕方が書いていなくどのように表記したよいのかサンプルなどで教えていただきたいです。 さらに上記のように保存先のディレクトリ名書を絶対相対パスで書いてみたのですが保存されませんでした。 どこを変更するとよいでしょうか

    • 締切済み
    • PHP
  • ファイルアップロード

    私は、今、Javaで作成しているシステム上に画像アップロード機能を作成しています。 これは、アップロードする画像と同時に、テキストデータを送信したかったので、JavaCommonsのFileUploadを使用せずに、 http://homepage3.nifty.com/uzblend/servlet/#x71 こちらを参考に画像ファイルアップロードを作成しました。 ここで一つ困ったことが起きました。 ファイルをアップロードをして、ページを参照しても、すぐには画像が更新されず、サーバを再起動しないと更新されないです。 なんとか解決する方法はないでしょうか。 開発環境 WindowsXP J2SE 5.0 Tomcat5.0

    • ベストアンサー
    • Java

専門家に質問してみよう