Heim  >  Artikel  >  Datenbank  >  Wie kann man Bilder effizient auf einem Java-Webserver speichern und abrufen, ohne eine Datenbank zu verwenden?

Wie kann man Bilder effizient auf einem Java-Webserver speichern und abrufen, ohne eine Datenbank zu verwenden?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-17 17:05:02415Durchsuche

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

So speichern und rufen Sie Bilder auf einem Java-Webserver ab: Eine Lösung

In diesem Artikel befassen wir uns mit einer häufigen Herausforderung in Webanwendungen: Wie man Bilder effektiv auf einem Java-Webserver speichert und abruft. Wir bieten eine umfassende Lösung, die die in der ursprünglichen Frage geäußerten Bedenken berücksichtigt.

Verstehen der Abfrage

Die Frage lautet: Wo sollten Bilder gespeichert werden, um dies zu ermöglichen? effizientes Abrufen und Anzeigen in einer XHTML-Datei auf einem Server, ohne die Datenbank als Speichermethode zu verwenden?

Das Empfohlene Lösung

Die ideale Lösung hängt vom Grad der Kontrolle über die Serverkonfiguration ab. Wenn möglich, wird empfohlen, einen festen Pfad außerhalb des Tomcat-Webapps-Ordners zu konfigurieren, z. B. /var/webapp/upload. Dieser Pfad kann als VM-Argument oder Umgebungsvariable festgelegt werden, um einen programmgesteuerten Abruf ohne Codeänderung sicherzustellen.

Implementierung der Lösung

Zum Beispiel bei Verwendung des VM-Arguments - Dupload.location=/var/webapp/upload, Sie können den Upload wie folgt abschließen:

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.

Um die Datei bereitzustellen, Ideal ist es, den Upload-Speicherort als separaten Kontext zu Tomcat hinzuzufügen. Zum Beispiel:

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

Dieses Setup ermöglicht den direkten Zugriff auf die Datei über URLs wie http://example.com/uploads/foo-123456.ext.

Alternative Optionen

Wenn die Serverkonfiguration begrenzt ist, sollten Sie erwägen, die Datenbank zur Speicherung zu verwenden oder einen Drittanbieter-Host wie Amazon zu nutzen S3.

Zusätzliche Ressourcen

  • [So geben Sie einen relativen Pfad in der Dateiklasse an, um beliebige hochzuladen Datei?](https://stackoverflow.com/questions/3344856/how-to-provide-relative-path-in-file-class-to-upload-any-file)
  • [Zuverlässige Daten Serving](https://tomcat.apache.org/tomcat-8.5-doc/config/context.html#Reliable_Data_Serving)

Fazit

Implementierung Die empfohlene Lösung bietet einen robusten Ansatz zum Speichern und Abrufen von Bildern auf einem Java-Webserver und ermöglicht so eine effiziente Dateiverwaltung und Anzeige in der Anwendung Schnittstellen.

Das obige ist der detaillierte Inhalt vonWie kann man Bilder effizient auf einem Java-Webserver speichern und abrufen, ohne eine Datenbank zu verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn