Mehrere Bilder gleichzeitig bzw. dynamisch eines Objektes speichern

RelaX

Aktives Mitglied
Hallo alle Zusammen,

erst einmal ein schönes neues Jahr und ich hoffe Ihr seit alle super reingekommen.

Ich bin ja im Java EE - Umfeld noch relativ neu und nun versuche ich einen Bilderupload hinzubekommen. Nun stellt sich mir die Frage wie ich das bauen soll.

Ich versuche einfach mal meine Ideen zu beschreiben und hoffe jemand schreibt mal etwas darüber und zeigt mir evt. alternativen dazu auf.

Ein Bild in die Datenbank schreiben und auch mittels Servlet wieder abzurufen stellt momentan nicht das Problem dar. Ich würde die Bilder gerne in der Verzeichnisstruktur speichern damit beim Abruf die Datenbank nicht belastet wird. Das war zumindest mein Gedanke dabei. Also nicht falsch verstehen, es werden die Bilder auch in der Datenbank gespeichert bzw. das Original. Da aber ja das Objekt nicht nur ein sondern auch mehrere Bilder haben soll, muss ich hier ja eine ManyToOne-Beziehung einrichten. So weit so gut.

Beim Speichern, werden dann die Bilder in der Verzeichnisstruktur abgelegt. Einmal ein großes nach folgendem Schlüssel:
*Classname*/*id*/*number*_original
*Classname*/*id*/*number*_middle
*Classname*/*id*/*number*_thumb

Also es wird dann das selbe Bild scalliert abgespeichert. Jetzt stellt sich mir allerdings die erste Frage.

Ich muss ja beim Speichern erst das Objekt an sich speichern, damit ich eine id bekomme oder? Und erst dann wenn das speichern des Objektes erfolgreich war, werden die Bilder skalliert und gespeichert.

Ok weiter mit der Update- und Deletefunktionalität.
Beim Update sowie beim Löschen muss ich ja auf die Verzeichnisstruktur zugreifen. Das muss ja auch händisch programmiert werden.

Wenn ich das alles so sehe könnte man auf die Idee kommen eine Bilder-Speicher-Bean zu bauen, die vollkommen ohne Beziehungen arbeitet. Dann müsste ich keine Bilder-Beziehung pflegen. Einzig der Classname und die ID wären dann der zusammengesetzte Schlüssel zur Identifikation.

Problem hierbei: Ich brauch eine existierende ID eines Objektes wenn ich Bilder speichern möchte. Im Controller müsste ich ja dann trotzdem zuerst das Objekt speichern, und dann die Bilder.

Es wäre super wenn ihr mal eure Gedanken dazu schreibt. Ist die Idee überhaupt sinnvoll oder eher weniger? Was für Nachteile seht ihr darin?

Gruß
 

stg

Top Contributor
Der Pfad bzw Datei-Name zum Bild muss nicht wissen zu welchem Datenbankeintrag er gehört, es reicht aus sich die andere Richtung zu merken.
In der Datenbank solltest du (sofern du keine triftigen Gründe dafür hast) das Bild gar nicht speichern, sondern nur einen Verweis auf das Bild im FileSystem.
Ja, es bietet sich an dafür eine Session Bean zu schreiben, die genau das macht. Bedenke aber, dass du hier Probleme mit Skalierbarkeit usw kriegen kannst.
 

RelaX

Aktives Mitglied
Also ich hab das jetzt so geregelt das ich die Bilder im Falle eines Backups doch auch in der Datenbank speichere. Die Abfrage funktioniert allerdings über die Speicherung im Dateiverzeichnis. Somit kann ich beim einspielen eines Backups auch die Bilder wieder herstellen. Nach ganzen Zwei Tagen hab ich es sogar hinbekommen Bilder via Ajax an die ViewScoped-Bean zu senden und dann als Vorschau wieder darzustellen. Bei einem submit werden diese Bilder dann gespeichert. Sowohl in der Datenbank als auch im Verzeichnis. Ich hab jetzt echt 2 Tage damit verbracht Bilder als byte[] in der Bean zu halten und diese dann nochmal zu rendern als Vorschau via Javascript. Erst wenn submitted wird, wird richtig gespeichert. Ich hatte das Problem das ich mit dem <h:inputFile> probleme hatte. Hat sich aber erledigt. Nun klappt alles. Danke für die Antwort!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Mehrere Bilder aus MySQL DB via Servlet darstellen. Allgemeines EE 1
N JAAS login() mehrere Parameter an LoginModul übergeben Allgemeines EE 2
T Mehrere gleiche Jars im Classpath Allgemeines EE 7
A JMS: Mehrere Durable Subscriber dynamisch zur Laufzeit erzeugen - setClientID() Allgemeines EE 2
MQue ein Rechner - mehrere BrowserFenster Allgemeines EE 3
K mehrere Datenbanken mit JBoss 4.2 und EJB3 Allgemeines EE 3
A Mehrere User gleichzeigig, wie mach ich das? Allgemeines EE 14
A Annotation "ID: Primary Key über mehrere Spalten möglic Allgemeines EE 3
M Mehrere Webanwendungen über einen Webserver? Allgemeines EE 2
B JSF - Mehrere Message-Bundles verwenden Allgemeines EE 17
E bei struts inhalte über mehrere seite verteilen Allgemeines EE 6
S mehrere Message Resources in Struts ansprechen Allgemeines EE 7
G Mehrere Probleme mit Servlets/Java Allgemeines EE 15
clemson HTML Taglib - mehrere Submit-Buttons & Internationalisie Allgemeines EE 4
M MVC in J2EE: mehrere JSPs über ein Servlet kontrollieren Allgemeines EE 7
clemson mehrere Mail Attachments - JSP Struts Allgemeines EE 7
T Jsp die mehrere Servlets aufruft erzeugt Fehler Allgemeines EE 10
W Mehrere Applikationenen mit einer Anmeldung möglich? Allgemeines EE 11
B mehrere submit-buttons in einer jsp Allgemeines EE 11
D Wohin mit Resourcen (Bilder, txt Dateien) im Application Client Allgemeines EE 3
C GWT: Zur Laufzeit Bilder hinzufügen Allgemeines EE 4
M JSF Bilder werden wegen jsessionid nicht gefunden (nur IE) Allgemeines EE 6
J Gif Bilder in Easy Eclispe? Allgemeines EE 4
P JSP Servlets/ Java Klassen für FTP FileUpload (Bilder) + DB Allgemeines EE 3
S JSF: Bei Navigation Bilder / Styles nicht mehr verfügbar Allgemeines EE 1
R Bilder in HTML Tabelle ermitteln Allgemeines EE 2
M Servlet (Bilder aus Datenbank liefern) läuft nur einige Zeit Allgemeines EE 12
O Tomcat bilder schützen Allgemeines EE 4
G Servlets und Bilder Allgemeines EE 13
M Bilder im JBoss ausserhalb von .war Allgemeines EE 2

Ähnliche Java Themen

Neue Themen


Oben