mondragor
Goto Top

Bilder via Request einbinden

Hallo allerseits.

Ich habe folgendes Problem:
Ich mache eine Datenbankabfrage, diese listet mir für ein kommerzielles Programm Datensätze.
Durch kombinierte Parameter dieser Abfrage ist es möglich, via url ein Bild im Browser zu erhalten.
Dieses Bild will ich nun aber nicht manuell abfragen sondern für die Ergebnisse der Datenbankabfrage automatisiert mit einbinden.

Es gibt eine Tabelle, in der die Datensätze landen.
Eine dieser Spalten soll ein <img> erhalten, oder ein anderes geeignetes Objekt, das letztlich das Bild erhält, welches mir der
Browser anzeigt, wenn ich die URL manuell eintippe.

Meine Frage ist nun, wie man mittels ajax oder so es hinbekommt, dass man ein Bild in die Tabelle einbindet, dessen Pfad so nicht
freigegeben ist, sondern das nur per response übermittelt werden kann.

Den Request habe ich schon, läuft auch durch aber wie gehe ich mit Responses um, die gar keinen Hypertext sondern quasi die
Bilddatei enthalten???


Ich hoffe ich hab mich nicht zu ungeschickt ausgedrückt.
Grüße und Vielen Dank im Voraus,
Mondragor

Content-ID: 208906

Url: https://administrator.de/contentid/208906

Ausgedruckt am: 22.11.2024 um 19:11 Uhr

Snowman25
Snowman25 01.07.2013 um 16:08:28 Uhr
Goto Top
Hallo @Mondragor,

könntest du die Bilder nicht base64-kodiert in der Datenbank ablegen? Wikipedia ~ Data URL Schema
Dann kannst du einfach alles als String behandeln.

Gruß,
@Snowman25
16568
16568 01.07.2013 aktualisiert um 16:11:49 Uhr
Goto Top
Zitat von @Snowman25:
...
könntest du die Bilder nicht base64-kodiert in der Datenbank ablegen?

SEHR schlechte Idee...


Lonesome Walker
Arano
Arano 01.07.2013 um 16:22:15 Uhr
Goto Top
Zitat von @16568:
> Zitat von @Snowman25:
> ----
> ...
> könntest du die Bilder nicht base64-kodiert in der Datenbank ablegen?

SEHR schlechte Idee...


Weil ?

Oder eine PHP-Datei als IMG einbinden, dieser die Parameter mitgeben, die macht eine zweite DB-Abfrage und liefert die Bilddaten
PHP-Manual - imagejpeg()
<img src="dbpic.php?id=3&x=a&e=mc2" alt="dbpic">  


~Arano
Zu Data URL Schema war ich auch gerade noch am suchen *g*
Mondragor
Mondragor 01.07.2013 um 16:26:08 Uhr
Goto Top
Das wird schwierig, da die Daten von einer kommerziellen Software in die Datenbank geschrieben werden.
Es ist also so, dass ich diese Bilder quasi erhalte, indem ich in einer URL Namen, PW, eine Dokumentversionsnummer und eine Größe in Pixeln angebe. Soweit ich das richtig verstehe, wird dabei das Bild dann überhaupt erst erzeugt. Das Ergebnis ist eine jpg-Datei in entsprechender Größe.
Ich will jetzt eben diese Datei in der Tabelle mit anzeigen. Da gibts ja die Möglichkeiten, auch mit Blobs zu arbeiten, aber so richtig schlau bin ich aus den Anleitungen im Internet bisher nicht geworden.
viplex
viplex 07.07.2013 um 18:57:37 Uhr
Goto Top
Hast du Zugriff auf das Feld in dieser Datenbank?
Mondragor
Mondragor 09.07.2013 um 15:38:50 Uhr
Goto Top
Welches Feld meinst Du denn genau?
Ich habe lesenden Zugriff, generell ja.
viplex
viplex 09.07.2013 um 16:34:22 Uhr
Goto Top
Snowman25
Snowman25 09.07.2013 aktualisiert um 16:38:13 Uhr
Goto Top
Womit wir dann wieder hier wären.
Mondragor
Mondragor 09.07.2013 um 16:42:47 Uhr
Goto Top
Ja, schlecht ist dieser Ansatz nicht, nur wie bereits gesagt, beim Laden der Seite heute sollen dort andere Bilder drin stehen, als morgen. Das Bild ist quasi eine Vorschau eines PDFs aber eben als Bild. Ich habe außerdem das Problem, dass durch die Art des Aufrufes je eine Session aufgebaut wird, bei maximal 5 gleichzeitig erlaubten Sessions je user, beim sechsten Bild wäre es also erledigt und nix käme mehr.
Ich habs erstmal aufgegeben, mir das anzutun.
Vielen Dank für Eure Beiträge und Antworten.

Grüße,
Mondragor
viplex
viplex 09.07.2013 um 17:13:35 Uhr
Goto Top
Du musst die Bilder natürlich dann aus der Datenbank mit einem dynamischen script holen ...
Wenn du nicht immer wieder zugriffe auf die db willst, dann speichere das bild doch in einer datei zwischen.
Herbrich19
Herbrich19 09.07.2013 um 20:58:26 Uhr
Goto Top
Hallo,

Du musst die Bilder natürlich dann aus der Datenbank mit einem dynamischen script holen ...
Wenn du nicht immer wieder zugriffe auf die db willst, dann speichere das bild doch in einer datei zwisch

Ich hoffe diese Aussage bezog sich nicht auf die Bilder weil die geöhren ja nicht in eine DB rein^^. Nimm in der DB Lieber die ID des Billdes die auch der Dateiname des Bildes ist, und so hast du die Bilder auf einer SMB (Samba)-Freigabe oder auf irendeinen Webspace in deinen System. Und dann kannst du einfach die ID,s aus der DB in Links umwandeln und sie dann via AJAX laden. Ich nutze für sowas übrigens echt gerne ASP.NET.

LG, Herbrich
Snowman25
Snowman25 10.07.2013 um 08:58:07 Uhr
Goto Top
Und wieso kannst du nicht mehrere DB-Zugriffe pro Session haben? Du hast doch genau das gleiche problem, wenn die Bilderpfade aus der DB kommen anstatt die Bilder selbst.
Mondragor
Mondragor 10.07.2013 aktualisiert um 19:09:57 Uhr
Goto Top
Okay, offenbar habe ich mich nicht klar genug ausgedrückt.
- Es gibt einen Webserver, der die Seitenaufrufe ermöglicht und die Daten je Datensatz oder nach bestimmter Ordnung geordnet anzeigt. (Tomcat)
- Es gibt einen Applicationserver, der die Daten beinhaltet und Programme ausführt, er kommuniziert mit dem Webserver.
Diese beiden Server gehören zu einer kommerziellen, lizenzierten Softwarelösung.
- Es gibt einen SQL-Server, von dem ich Abfragen holen will, die als solche nicht von der kommerziellen, Software vorgesehen sind. Auch mit diesem
kommuniziert der Applicationserver.
Alles in allem gibt es rund 142.000 Datensätze (größte Tabelle von über 100 Tabellen und Views), die ich nun auf SQL-Ebene abfragen will.
- Es gibt einen lokalen XAMPP, der meine Abfragen und Darstellungen macht. Nun ist es möglich, dass man zu einem bestimmten Datensatz ein JPEG
anzeigen lässt. Dieses wird während eines entsprechenden Aufrufes von den beiden Servern erst erstellt, liegt also nicht unbedingt direkt bereit.
Der Thread ging davon aus, dass hier ein Bild via jsp erzeugt und als Datenstrom an den anfragenden (ajax) "meinen" Xampp-Server gesendet wird.
An die JSP wird unter anderem Benutzernamen und PW übergeben. Dadurch wird auf dem TOMCAT eine Session geöffnet.
Es liegt KEIN Bild in einer Datenbank!!!
Das habe ich auch nie gesagt. Der oben erwähnte Aufruf der JSP erzeugt erst das Bild (übergeben bei der JSP-Anfrage wird unter anderem die Kantenlänge).
Meine Frage war nun darauf gerichtet, wie ich diesen Datenstrom in ein darstellbares Bild umwandeln kann.
Doch da ich mich nun dafür entschieden habe, die Datenbankabfrageergebnisse nun mit ParamQuery-Grid darzustellen, hat sich das erledigt.

Vielen Dank trotzdem Euch allen, die Ihr mir helfen wolltet!

Grüße,
Mondragor