Bilder in Tabelle (MySql) uploaden
Bilder in Tabelle (MySql) uploaden
am 26.10.2005 08:06:57 von Andreas Rusch
Hallo Profis der NG,
ich möchte Bilder (jpg) in einer Tabelle auf dem Webserver speichern. Wie
kann ich es anstellen, dass diese Bilder nicht als Hyroglyphen sondern als
Bild in der entsprechenden Zelle erscheinen. Der Upload soll per Formular
mit der Methode 'post' von einem lokalen oder Wechseldatenträger Datenträger
auf die entsprechende Datenbank - > Tabelle erfolgen. Die Bilder sollen
wirklich in der Datenbank und nicht in einem entfernten Verzeichnis
gespeichert werden, da sie irgendwann auch aus dieser wieder gelöscht werden
sollen. (Keine Verlinkung zu diesen Bildern)
Ich hoffe, ich langweile mit dieser sicher banalen Frage niemanden und würde
mich über eine oder mehrere praktikable Lösungen sehr freuen.
Andreas
Re: Bilder in Tabelle (MySql) uploaden
am 26.10.2005 08:59:57 von Tobias Kutzler
Andreas Rusch schrieb:
> Hallo Profis der NG,
>
> ich möchte Bilder (jpg) in einer Tabelle auf dem Webserver speichern. Wie
> kann ich es anstellen, dass diese Bilder nicht als Hyroglyphen sondern als
> Bild in der entsprechenden Zelle erscheinen. Der Upload soll per Formular
> mit der Methode 'post' von einem lokalen oder Wechseldatenträger Datenträger
> auf die entsprechende Datenbank - > Tabelle erfolgen. Die Bilder sollen
> wirklich in der Datenbank und nicht in einem entfernten Verzeichnis
> gespeichert werden, da sie irgendwann auch aus dieser wieder gelöscht werden
> sollen. (Keine Verlinkung zu diesen Bildern)
Was denn für Hyroglyphen? Das was Du in der Tabelle siehst, ist der
binäre Inhalt des Bildes. Die Datenbank wird sich nicht drum scheren,
was dort gespeichert wird. Ihr ist es egal, ob Du in ein BLOB Bilder
oder PDF-Dokumente speicherst. Woher soll sie also wissen, dass sie Dir
ein Bild anzeigen soll? Die "Hyroglyphen" sind ganz normaler Binärcode
des Bildes. Wenn Du diese Daten ausliest und mit den richtigen Headern
speicherst, dann wird das wieder ein Bild.
Wo bitte, soll der Vorteil bei der Speicherung in der Datenbank sein?
Wenn ich in der Datenbank nur einen Verweis auf einen Pfad/eine
Bilddatei speichere belaste ich die Datenbank weniger. Weiterhin kann
ich beim Löschen - neben dem Datensatz in der Datenbank - auch die
Bilddatei selber löschen. Also kein Problem...
Hinweise dazu:
16.3. Ist es sinnvoll, Bilder in einer Datenbank abzulegen?
http://www.php-faq.de/q/q-db-blob.html
>
> Ich hoffe, ich langweile mit dieser sicher banalen Frage niemanden und würde
> mich über eine oder mehrere praktikable Lösungen sehr freuen.
Nö, überhaupt nicht und wenn Du Dich trotzdem nicht belehren lassen
möchtest ;-)
17.8. Wie kann ich Bilder in einer MySQL-Datenbank speichern?
http://www.php-faq.de/q/q-mysql-blob.html
Ciao,
Tobias
Re: Bilder in Tabelle (MySql) uploaden
am 26.10.2005 09:03:31 von Joerg Behrens
"Andreas Rusch" schrieb im Newsbeitrag
news:djn6fu$plb$1@online.de...
> Hallo Profis der NG,
>
> ich möchte Bilder (jpg) in einer Tabelle auf dem Webserver
> speichern. Wie
> kann ich es anstellen, dass diese Bilder nicht als Hyroglyphen
> sondern als
> Bild in der entsprechenden Zelle erscheinen.
WO moechtest du den ein Bild sehen? Wenn man Binaerdaten in eine DB
schreibt sieht man nun einmal 'Hyroglyphen'. Ansonsten brauchts halt
nen Client der weis was zu tun ist damit der Benutzer wieder das Bild
als solches angezeigt bekommt.
Wenn dein Client ein Browser sein sollte dann fragt dich einmal selbst
wie Bilder in HTML Referenziert werden.
> Der Upload soll per Formular
> mit der Methode 'post' von einem lokalen oder Wechseldatenträger
> Datenträger
> auf die entsprechende Datenbank - > Tabelle erfolgen. Die Bilder
> sollen
> wirklich in der Datenbank und nicht in einem entfernten Verzeichnis
> gespeichert werden, da sie irgendwann auch aus dieser wieder
> gelöscht werden
> sollen. (Keine Verlinkung zu diesen Bildern)
Hier kann ich zwar nicht folgen aber trotzdem nochmal auf Verdacht:
16.3. Ist es sinnvoll, Bilder in einer Datenbank abzulegen?
http://www.php-faq.de/q/q-db-blob.html
> Ich hoffe, ich langweile mit dieser sicher banalen Frage niemanden
> und würde
> mich über eine oder mehrere praktikable Lösungen sehr freuen.
>
Gruss
Joerg
--
TakeNet GmbH Mobil: 0171/60 57 963
D-97080 Wuerzburg Tel: +49 931 903-2243
Alfred-Nobel-Straße 20 Fax: +49 931 903-3025
Re: Bilder in Tabelle (MySql) uploaden
am 26.10.2005 09:11:02 von Andreas Rusch
für die schnelle Antwort. Ich arbeite noch nicht lange mit PHP und MySql und
muss deswegen noch einige viele Erfahrungen sammeln.
Den Vorteil des Speicherns in der DB sehe ich einzig darin, dass der
Benutzer der Datenbank, der ich ja nicht immer sein werde beim Löschen des
Datensatzes auch die dazugehörigen Bilder löschen kann.
Mir ist schon klar, dass das der binäre Inhalt der Datei ist. Darum geht es
mir ja, diese wieder richtig angezeigt zu bekommen. Ich schaue mir mal
intensiver deine gesendeten Links an und dann werde ich vielleicht etwas
mehr Land sehen. Hoffe ich ...
Danke
Andreas
"Tobias Kutzler" schrieb im Newsbeitrag
news:3s8ntaFmhqb3U1@individual.net...
> Andreas Rusch schrieb:
> > Hallo Profis der NG,
> >
> > ich möchte Bilder (jpg) in einer Tabelle auf dem Webserver speichern.
Wie
> > kann ich es anstellen, dass diese Bilder nicht als Hyroglyphen sondern
als
> > Bild in der entsprechenden Zelle erscheinen. Der Upload soll per
Formular
> > mit der Methode 'post' von einem lokalen oder Wechseldatenträger
Datenträger
> > auf die entsprechende Datenbank - > Tabelle erfolgen. Die Bilder sollen
> > wirklich in der Datenbank und nicht in einem entfernten Verzeichnis
> > gespeichert werden, da sie irgendwann auch aus dieser wieder gelöscht
werden
> > sollen. (Keine Verlinkung zu diesen Bildern)
>
> Was denn für Hyroglyphen? Das was Du in der Tabelle siehst, ist der
> binäre Inhalt des Bildes. Die Datenbank wird sich nicht drum scheren,
> was dort gespeichert wird. Ihr ist es egal, ob Du in ein BLOB Bilder
> oder PDF-Dokumente speicherst. Woher soll sie also wissen, dass sie Dir
> ein Bild anzeigen soll? Die "Hyroglyphen" sind ganz normaler Binärcode
> des Bildes. Wenn Du diese Daten ausliest und mit den richtigen Headern
> speicherst, dann wird das wieder ein Bild.
>
> Wo bitte, soll der Vorteil bei der Speicherung in der Datenbank sein?
> Wenn ich in der Datenbank nur einen Verweis auf einen Pfad/eine
> Bilddatei speichere belaste ich die Datenbank weniger. Weiterhin kann
> ich beim Löschen - neben dem Datensatz in der Datenbank - auch die
> Bilddatei selber löschen. Also kein Problem...
>
> Hinweise dazu:
> 16.3. Ist es sinnvoll, Bilder in einer Datenbank abzulegen?
> http://www.php-faq.de/q/q-db-blob.html
>
> >
> > Ich hoffe, ich langweile mit dieser sicher banalen Frage niemanden und
würde
> > mich über eine oder mehrere praktikable Lösungen sehr freuen.
>
> Nö, überhaupt nicht und wenn Du Dich trotzdem nicht belehren lassen
> möchtest ;-)
>
> 17.8. Wie kann ich Bilder in einer MySQL-Datenbank speichern?
> http://www.php-faq.de/q/q-mysql-blob.html
>
> Ciao,
> Tobias
Re: Bilder in Tabelle (MySql) uploaden
am 26.10.2005 09:24:46 von Andreas Rusch
Hallo Jörg,
mein Bild möchte ich im Browser sehen und zwar in der entsprechenden Zelle
der Tabelle, in der es gespeichert ist.
Speichere ich das Bild direkt mit phpMyAdmin direkt wird es in phpMyAdmin
auch angezeigt. Rufe ich dagegen mein erzeugtes php-script auf, so werden
bei binären Daten eben nur die binären Inhalte angezeigt. Alle anderen Daten
sind ok.
Andreas
"Joerg Behrens" schrieb im Newsbeitrag
news:3s8o1qFmouhuU1@individual.net...
> "Andreas Rusch" schrieb im Newsbeitrag
> news:djn6fu$plb$1@online.de...
> > Hallo Profis der NG,
> >
> > ich möchte Bilder (jpg) in einer Tabelle auf dem Webserver
> > speichern. Wie
> > kann ich es anstellen, dass diese Bilder nicht als Hyroglyphen
> > sondern als
> > Bild in der entsprechenden Zelle erscheinen.
>
> WO moechtest du den ein Bild sehen? Wenn man Binaerdaten in eine DB
> schreibt sieht man nun einmal 'Hyroglyphen'. Ansonsten brauchts halt
> nen Client der weis was zu tun ist damit der Benutzer wieder das Bild
> als solches angezeigt bekommt.
>
> Wenn dein Client ein Browser sein sollte dann fragt dich einmal selbst
> wie Bilder in HTML Referenziert werden.
>
> > Der Upload soll per Formular
> > mit der Methode 'post' von einem lokalen oder Wechseldatenträger
> > Datenträger
> > auf die entsprechende Datenbank - > Tabelle erfolgen. Die Bilder
> > sollen
> > wirklich in der Datenbank und nicht in einem entfernten Verzeichnis
> > gespeichert werden, da sie irgendwann auch aus dieser wieder
> > gelöscht werden
> > sollen. (Keine Verlinkung zu diesen Bildern)
>
> Hier kann ich zwar nicht folgen aber trotzdem nochmal auf Verdacht:
> 16.3. Ist es sinnvoll, Bilder in einer Datenbank abzulegen?
> http://www.php-faq.de/q/q-db-blob.html
>
> > Ich hoffe, ich langweile mit dieser sicher banalen Frage niemanden
> > und würde
> > mich über eine oder mehrere praktikable Lösungen sehr freuen.
> >
>
> Gruss
> Joerg
>
> --
> TakeNet GmbH Mobil: 0171/60 57 963
> D-97080 Wuerzburg Tel: +49 931 903-2243
> Alfred-Nobel-Straße 20 Fax: +49 931 903-3025
>
>
Re: Bilder in Tabelle (MySql) uploaden
am 26.10.2005 09:50:27 von Gregor Kofler
Andreas Rusch wrote:
[TOFU] - bitte abstellen. Danke.
> mein Bild möchte ich im Browser sehen und zwar in der entsprechenden Zelle
> der Tabelle, in der es gespeichert ist.
> Speichere ich das Bild direkt mit phpMyAdmin direkt wird es in phpMyAdmin
> auch angezeigt. Rufe ich dagegen mein erzeugtes php-script auf, so werden
> bei binären Daten eben nur die binären Inhalte angezeigt. Alle anderen Daten
> sind ok.
No na. Dein Skript muss (verkürzt) die Binärdaten auslesen, einen
entsprechenden Header generieren und die Binärdaten samt restlichem
Markup an den Browser schicken.
Bei externer Speicherung reicht etwas in der Art:
echo '';
aber da liegen die Bilder unverschämt effizient im Filesystem und nicht
in Datenbank. Tja...
Gruß, Gregor
--
http://www.gregorkofler.at ::: Landschafts- und Reisefotografie
http://www.licht-blick.at ::: Forum für Multivisionsvorträge
http://www.image2d.com ::: Bildagentur für den alpinen Raum
Re: Bilder in Tabelle (MySql) uploaden
am 26.10.2005 09:54:08 von Fabian Schladitz
Andreas Rusch schrieb:
> Hallo Jörg,
Darf ich auch was sagen?
> mein Bild möchte ich im Browser sehen und zwar in der entsprechenden =
Zelle
> der Tabelle, in der es gespeichert ist.
Das geht nicht. Du hast eine Tabelle, du kannst aber *diese* Tabelle=20
nicht anzeigen, da MySQL Tabellen in Form von mehreren Dateien ablegt.
Du möchtest also ein HTML-Dokument mit einer HTML-Tabelle erstellen und=
=20
in einer Zelle dieser HTML-Tabelle ein Bild referenzieren. Dazu=20
benötigst du (siehe de.selfhtml.org für Details).
> Speichere ich das Bild direkt mit phpMyAdmin direkt wird es in phpMyAdm=
in
> auch angezeigt. Rufe ich dagegen mein erzeugtes php-script auf, so werd=
en
> bei binären Daten eben nur die binären Inhalte angezeigt. Alle ande=
ren Daten
> sind ok.
Dann solltest du mal den Quellcode der HTML-Seiten betrachten und die=20
entscheidenen Unterschiede einsehen. phpMyAdmin hat Tags, du=20
hast da einfach den Inhalt des Feldes ausgegeben.
Du musst eine PHP-Datei haben, welche _nur_ die Binärdaten ausgibt und =
vorher den korrekten Header sendet. (siehe im php-Manual header())
Außerdem musst du mal http://learn.to/quote lesen und beherzigen.
--=20
HTH,
Fabian
Re: Bilder in Tabelle (MySql) uploaden
am 26.10.2005 09:55:37 von Joerg Behrens
"Andreas Rusch" schrieb im Newsbeitrag
news:djnb1t$vnt$1@online.de...
> Hallo Jörg,
>
> mein Bild möchte ich im Browser sehen und zwar in der entsprechenden
> Zelle
> der Tabelle, in der es gespeichert ist.
> Speichere ich das Bild direkt mit phpMyAdmin direkt wird es in
> phpMyAdmin
> auch angezeigt. Rufe ich dagegen mein erzeugtes php-script auf, so
> werden
> bei binären Daten eben nur die binären Inhalte angezeigt. Alle
> anderen Daten
> sind ok.
Das haben wir uns fast gedacht :).
Jede Datei welche den Server Richtung Client versendet enthaelt in den
Responce Headern einen Content-Type. PHP setzt fuer sich selber ein
text/html. Wenn du davon abweichend was setzen willst must du diesen
ueberschreiben mit z.b
header('Content-type: image/png');
gefolgt von den Binaerdaten damit der Client weis was da auf ihn
zukommt. Es gibt fuer die Browser so nette Erweiterungen wie
liveHTTP-Header welche einmal zeigen was bei einem HTTP
Request/Responce so hin und hergeschickt wird. Schau dir das mal an.
Ansonsten geht das auch zufuss.
> telnet www.heise.de 80
Trying 193.99.144.85...
Connected to www.heise.de.
Escape character is '^]'.
>HEAD /icons/ho/heise.gif HTTP/1.0
> Host: www.heise.de
HTTP/1.1 200 OK
Date: Wed, 26 Oct 2005 07:53:30 GMT
Server: Apache/1.3.29
Cache-Control: max-age=2592000
Expires: Fri, 25 Nov 2005 07:53:30 GMT
Last-Modified: Sun, 26 Dec 2004 18:00:07 GMT
ETag: "10c0a2-e68-41cefc27"
Accept-Ranges: bytes
Content-Length: 3688
Connection: close
Content-Type: image/gif
Connection closed by foreign host.
Die Zeilen mit > sind die welche ich eingetipp habe. Wenn du die
Binardaten sehen willst mach aus dem HEAD einen GET Request.
Gruss
Joerg
--
TakeNet GmbH Mobil: 0171/60 57 963
D-97080 Wuerzburg Tel: +49 931 903-2243
Alfred-Nobel-Straße 20 Fax: +49 931 903-3025
Re: Bilder in Tabelle (MySql) uploaden
am 29.10.2005 06:53:44 von Andreas Rusch
"Andreas Rusch" schrieb im Newsbeitrag
news:djna84$ubb$1@online.de...
> für die schnelle Antwort. Ich arbeite noch nicht lange mit PHP und MySql
und
> muss deswegen noch einige viele Erfahrungen sammeln.
> Den Vorteil des Speicherns in der DB sehe ich einzig darin, dass der
> Benutzer der Datenbank, der ich ja nicht immer sein werde beim Löschen des
> Datensatzes auch die dazugehörigen Bilder löschen kann.
>
> Mir ist schon klar, dass das der binäre Inhalt der Datei ist. Darum geht
es
> mir ja, diese wieder richtig angezeigt zu bekommen. Ich schaue mir mal
> intensiver deine gesendeten Links an und dann werde ich vielleicht etwas
> mehr Land sehen. Hoffe ich ...
>
> Danke
>
> Andreas
> "Tobias Kutzler" schrieb im Newsbeitrag
> news:3s8ntaFmhqb3U1@individual.net...
> > Andreas Rusch schrieb:
> > > Hallo Profis der NG,
> > >
> > > ich möchte Bilder (jpg) in einer Tabelle auf dem Webserver speichern.
> Wie
> > > kann ich es anstellen, dass diese Bilder nicht als Hyroglyphen sondern
> als
> > > Bild in der entsprechenden Zelle erscheinen. Der Upload soll per
> Formular
> > > mit der Methode 'post' von einem lokalen oder Wechseldatenträger
> Datenträger
> > > auf die entsprechende Datenbank - > Tabelle erfolgen. Die Bilder
sollen
> > > wirklich in der Datenbank und nicht in einem entfernten Verzeichnis
> > > gespeichert werden, da sie irgendwann auch aus dieser wieder gelöscht
> werden
> > > sollen. (Keine Verlinkung zu diesen Bildern)
> >
> > Was denn für Hyroglyphen? Das was Du in der Tabelle siehst, ist der
> > binäre Inhalt des Bildes. Die Datenbank wird sich nicht drum scheren,
> > was dort gespeichert wird. Ihr ist es egal, ob Du in ein BLOB Bilder
> > oder PDF-Dokumente speicherst. Woher soll sie also wissen, dass sie Dir
> > ein Bild anzeigen soll? Die "Hyroglyphen" sind ganz normaler Binärcode
> > des Bildes. Wenn Du diese Daten ausliest und mit den richtigen Headern
> > speicherst, dann wird das wieder ein Bild.
> >
> > Wo bitte, soll der Vorteil bei der Speicherung in der Datenbank sein?
> > Wenn ich in der Datenbank nur einen Verweis auf einen Pfad/eine
> > Bilddatei speichere belaste ich die Datenbank weniger. Weiterhin kann
> > ich beim Löschen - neben dem Datensatz in der Datenbank - auch die
> > Bilddatei selber löschen. Also kein Problem...
> >
> > Hinweise dazu:
> > 16.3. Ist es sinnvoll, Bilder in einer Datenbank abzulegen?
> > http://www.php-faq.de/q/q-db-blob.html
> >
> > >
> > > Ich hoffe, ich langweile mit dieser sicher banalen Frage niemanden und
> würde
> > > mich über eine oder mehrere praktikable Lösungen sehr freuen.
> >
> > Nö, überhaupt nicht und wenn Du Dich trotzdem nicht belehren lassen
> > möchtest ;-)
> >
> > 17.8. Wie kann ich Bilder in einer MySQL-Datenbank speichern?
> > http://www.php-faq.de/q/q-mysql-blob.html
> >
Danke für den Tipp. Der hat mich aber nicht wirklich weitergebracht.
Trotz des sicher mehrfach getesteten Scripts erscheint bei mir nur der
binäre Inhalt der Datei, statt eines Bildes.
Es muss doch gehen, dass ein kleines jpg oder gif angezeigt wird. Den
Dateityp gif gibt das script auch korrekt als
image/gif wieder. Bei jpg steht image/pjpeg.
Was kann ich noch machen, dass die Bilder angezeigt werden?
Andreas
> > Ciao,
> > Tobias
>
>
Re: Bilder in Tabelle (MySql) uploaden
am 29.10.2005 07:16:15 von Niels Braczek
Andreas Rusch schrieb:
> Danke für den Tipp. Der hat mich aber nicht wirklich weitergebracht.
> Trotz des sicher mehrfach getesteten Scripts erscheint bei mir nur der
> binäre Inhalt der Datei, statt eines Bildes.
Dann machst du etwas anders, als es beschrieben ist.
> Es muss doch gehen, dass ein kleines jpg oder gif angezeigt wird. Den
> Dateityp gif gibt das script auch korrekt als
> image/gif wieder. Bei jpg steht image/pjpeg.
Geht auch.
> Was kann ich noch machen, dass die Bilder angezeigt werden?
Mach es *genau* so, wie in dem Artikel beschrieben. Mache *deine*
Anpassungen erst, wenn das läuft und du die Zusammenhänge verstanden hast.
MfG
Niels
--
| http://www.kolleg.de · Das Portal der Kollegs in Deutschland |
| http://www.bsds.de · BSDS Braczek Software- und DatenSysteme |
| Webdesign · Webhosting · E-Commerce · Mambo Content Management |
`----------------------------------------------------------- -----´