2011-12-23 10 views
1

私のWebアプリケーションでは、私はprimeface + SpringWebflowを使用しています。登録されたすべての顧客にスキャンまたはアップロードされた画像を追加する必要があります。私はファイルを保存するための良い解決策は考えられません。基準はそれです。 私はアプリケーションにファイルへのアクセス権しか持たず、画像に直接アクセスすることはできません。 データベースにファイルを保存しようとしましたが、それは良い考えではありません。私はデータベースにパスを保存します。 ファイルへの相対パスが必要です。ファイルにアクセスするのに効率的です。Javaのアップロードと保存用のJavaソリューション

答えて

1

ファイルをデータベースに保存するだけです。別の場所に配置しようとすると、そのデータが複数のソースに分散されるため、アプリケーションをあるサーバーから別のサーバーに移行することは困難になります。アップグレードはより困難になります。

パフォーマンス/データベースのサイズが問題になる場合は、この決定に戻ってください。ただし、パフォーマンスを推測するのではなく、常に測定してください。

+0

問題はパフォーマンスではありません。 URLからファイルを読み取るスキャンソリューションがあります。バイトを読み込んでデータベースに格納するときに、ファイルが時々バッファリングされる。 もう1つの問題は、データベースからバイトを読み込んでディスク上のファイルに格納して表示する必要がある画像を表示したいときです。これは必ずしも簡単な解決策ではありません。 PrimefacesにはBeanのファイルを表示する機能がありますが、Spring webflowでは機能しません。 もう1つの問題は、データベースをSQLにバックアップするときです。バイトは、SQLファイルでよく見えません。 – mettok

+0

より詳細な質問で質問を更新できますか? – artbristol

+0

私はDBに画像を保存しておき、それを取り出して表示したいとき。私はそれを一時ファイルに読み込んで表示する必要があります。もっと良い解決策はありますか? – mettok

1

DBにファイルを保存するのはなぜいいのですか? アプリケーションをクラスタ化されたサーバー環境に展開するとどうなりますか?クラスタ化されたサーバー環境では、イメージをファイルシステムに保存するソリューションは機能しません。 DB内の画像の保管を念頭に置いて考えることが必要です。 DB内の画像の保存/取り込みにどのようなパフォーマンスが得られたかを調べてください。 nosql DBのような異なる種類のストレージ・フレームワークを試してみてください。基本的には、私が考える中心的な場所にデータを保存することで逃げることはできません。

+0

イメージをファイルシステムに取り込んで表示するよりも優れたソリューションはありますか? – mettok

関連する問題