ユーザーがオーディオをアップロードできる Web アプリを作成しています。私の質問は、それらをどこに配置すればよいかということです。の中に配置する必要がありWeb-Content
ますか?または中WEB-INF
?(ほとんどのオーディオ ファイルは巨大なので、これらのファイルにデータベースを使用することは考えていません) ファイルのアップロードと保存のベスト プラクティスは何ですか? アプリケーションをwarファイルにデプロイすると、これらのファイルの相対ファイルパスをデータベースに保存するため、ファイルは可能な限りそこに残ります
3 に答える
アップロードしたファイルを任意のレベルのWebアプリの下に配置することは絶対に良い考えではありません。私の好みは、パスが構成されている構成ファイルを用意することです。サーバー上でアップロードされたファイルを実行できないように、Webルートからパスに完全にアクセスできないことが重要です。
create a text file called <webapp>.properties
含む
StorePath=C:/temp/Storage/
このテキストファイルは、ResourceLoader.getResource()からアクセス可能なパス(クラスパス、WEB-INFなど)の下に含める必要があります。
その後、Javaを使用してプロパティをロードできます。
java.util.Properties props = new java.util.Properties();
java.net.URL urlx = ResourceLoader.getResource("<webapp>.properties");
props.load(urlx.openStream());
String buildVersion =props.get("StorePath").toString();
次に、ファイルをその場所に保存します。
ファイルをサーバー ストレージの場所 (サーバーのファイル システムのハード ドライブ) にアップロードする最良の方法は、サーバーにフォルダーを作成し、そのファイルをアップロードします。アップロード後、アップロードされたファイルのパスをデータベースに入れます。
ユーザーがデータベースからファイル フェッチ ファイル パスを表示し、html/jsp ページに表示し、それを処理する適切な html タグを使用してパスを表示したい場合。
画像を表示するのと同じように、サーバー上のディレクトリに画像を保存し、そのパスを db に保存します。パスがwww.xrv.com/images/Sunset.jpg (
絶対or
相対であると仮定します)。
jsp使用時<img src="www.xrv.com/images/Sunset.jpg"/>
直面しているシナリオによって異なりますが、これらのオーディオは何に使用されますか? ただし、リソース ファイルを webapp フォルダーに配置することは常にお勧めできません。アプリがアクセス許可を持っている別のフォルダー、またはマシンにマウントされているリモートストレージ、または HDFS などの他の分散ファイルシステムや Amazon S3 などのクラウドストレージ製品にそれらを保存できます。