ホームページ >データベース >mysql チュートリアル >データベースを使用せずに Java Web サーバーに画像を効率的に保存および取得するにはどうすればよいですか?

データベースを使用せずに Java Web サーバーに画像を効率的に保存および取得するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-17 17:05:02477ブラウズ

How to Efficiently Store and Retrieve Images on a Java Web Server Without Using a Database?

Java Web サーバーに画像を保存および取得する方法: 解決策

この記事では、Java Web サーバーでの一般的な課題に対処します。 Web アプリケーション: Java Web サーバー上で画像を効果的に保存および取得する方法。元の質問で提起された懸念に対処する包括的なソリューションを提供します。

クエリを理解する

この質問では、次のことが尋ねられます。データベースを保存方法として使用せずに、サーバー上の XHTML ファイルで効率的に取得して表示しますか?

推奨ソリューション

理想的なソリューションは、サーバー構成の制御レベルによって異なります。可能であれば、Tomcat Webapps フォルダーの外側に固定パス (/var/webapp/upload など) を構成することをお勧めします。このパスを VM 引数または環境変数として設定すると、コードを変更せずにプログラムで取得できるようになります。

ソリューションの実装

たとえば、VM 引数を使用する場合 - Dupload.location=/var/webapp/upload、次のようにアップロードを完了できます。

Path folder = Paths.get(System.getProperty("upload.location"));
String filename = FilenameUtils.getBaseName(uploadedFile.getName()); 
String extension = FilenameUtils.getExtension(uploadedFile.getName());
Path file = Files.createTempFile(folder, filename + "-"", "." + extension);

try (InputStream input = uploadedFile.getInputStream()) {
    Files.copy(input, file, StandardCopyOption.REPLACE_EXISTING);
}

String uploadedFileName = file.getFileName().toString();
// Now store it in the DB.

ファイルを提供するには、アップロード場所を別のコンテキストとして Tomcat に追加するのが理想的です。例:

<Context docBase="/var/webapp/upload" path="/uploads" />

この設定では、http://example.com/uploads/foo-123456.ext のような URL 経由でファイルに直接アクセスできます。

代替オプション

サーバー構成が制限されている場合は、ストレージとしてデータベースを使用するか、サードパーティのホストを利用することを検討してください。 Amazon S3 など。

追加リソース

  • [ファイル クラスで相対パスを指定してアップロードする方法ファイル?](https://stackoverflow.com/questions/3344856/how-to-provide-relative-path-in-file-class-to-upload-any-file)
  • [信頼できるデータServing](https://tomcat.apache.org/tomcat-8.5-doc/config/context.html#Reliable_Data_Serving)

結論

実装推奨されるソリューションは、Java Web サーバー上で画像を保存および取得するための堅牢なアプローチを提供し、アプリケーションでの効率的なファイル管理と表示を可能にします。インターフェース。

以上がデータベースを使用せずに Java Web サーバーに画像を効率的に保存および取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。