WinFuture-Forum.de: Bild Aus Sql-datenbank Auslesen - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Bild Aus Sql-datenbank Auslesen


#1 _TheToxic_

  • Gruppe: Gäste

geschrieben 08. Juni 2005 - 12:59

Wie kann ich mir ein Bild aus einer SQL-Datenbank in einem HTML-Dokument auslesen lassen?

<img src= ? >



MFG TOXIC
0

Anzeige



#2 Mitglied ist offline   Floele 

  • Gruppe: aktive Mitglieder
  • Beiträge: 919
  • Beigetreten: 22. Juni 04
  • Reputation: 0

geschrieben 08. Juni 2005 - 13:03

Gar nicht. Wenn der IE eine Art "inline-Bilder" unterstützen würde gäbe es da eine Möglichkeit, aber so musst du das Bild schon vorher irgendwo abspeichern.
0

#3 _TheToxic_

  • Gruppe: Gäste

geschrieben 08. Juni 2005 - 13:09

?

Kennst du BLOB´s? Das sind Datentypen in mySQL die Datein ausdrücken (Bilder, Videos...)

Ich würde gern wissen wie man diese wieder ausließt, sonst nützt es ja auch nix wenn ich die hochlade....


***** EDIT *****

Was ist ein IE? etwa gar internet explorer?

Dieser Beitrag wurde von TheToxic bearbeitet: 08. Juni 2005 - 13:10

0

#4 Mitglied ist offline   Mr_Maniac 

  • Gruppe: aktive Mitglieder
  • Beiträge: 770
  • Beigetreten: 29. Juli 02
  • Reputation: 1
  • Geschlecht:Männlich
  • Interessen:Vieles rund um den Computer
    Musik

geschrieben 08. Juni 2005 - 13:34

Ja, IE == Internet Explorer :)
Und wie Floele schon Sagte: Der IE unterstützt unseres Wissens nach keine "Inline-Bilder"...
Man könnte als <img src=> höchstens eine zweite PHP-Datei nehmen, die das Bild ausliest...
Eigentlich müsstest du nur das BLOB-Feld durch diese zweite PHP-Datei ausgeben lassen...

EDIT:

Zitat

Wie kann ich mir ein Bild aus einer SQL-Datenbank in einem HTML-Dokument auslesen lassen?

Ich hoffe, dass dir klar ist, dass das mit einem puren HTML-Dokument NICHT geht!
Da braucht man eine serverseitige Skriptsprache wie z.B. PHP oder ASP...

Dieser Beitrag wurde von Mr_Maniac bearbeitet: 08. Juni 2005 - 13:36

0

#5 Mitglied ist offline   Meatwad 

  • Gruppe: aktive Mitglieder
  • Beiträge: 784
  • Beigetreten: 07. August 04
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Bad Vilbel
  • Interessen:Computer, Inliner, Chatten...

geschrieben 08. Juni 2005 - 14:31

also ich würde es so machen:
die ausgabe des bildes in einer extra phpdatei dann Header('Content-type: image/jpg'); und dann die bytes in der DB speichern und dann auslesen lassen und mit <img src="" /> einbinden^^
I am away to look for my self. If I am back before I return keep me here. | Mein Server
0

#6 Mitglied ist offline   Mr_Maniac 

  • Gruppe: aktive Mitglieder
  • Beiträge: 770
  • Beigetreten: 29. Juli 02
  • Reputation: 1
  • Geschlecht:Männlich
  • Interessen:Vieles rund um den Computer
    Musik

geschrieben 08. Juni 2005 - 15:11

Hier mal ein kleines Beispiel:
Ich habe das mal eben zusammengebastelt...

Drei Dateien:
blob.php = PHP-Script zum Hochladen eines Bildes
blob2.php = Ausgabe der Bilder in HTML
blob3.php = wird als Bild-Datei verwendet

blob.php:
<?php
if ($_GET['action'] == "upload") {

  // ok, let's get the uploaded data and insert it into the db now
  include "../includes/mysqlcon.inc";
  mysqlcon();

  if ($_GET['datei'])
  {
    $binFile = $_GET['datei'];
    echo $binFile;
    $data = addslashes(fread(fopen("$binFile", "rb"), filesize ($binFile)));
    $sql = "INSERT INTO blubb VALUES ('$binFile', '$data')";
    mysql_query($sql);
    echo "Thank you. The new file was successfully added to our database.<br><br>";
    echo "<a href='blob.php'>Continue</a>";
  }
  mysql_close();

} else {
?>
<HTML>
<BODY>
<FORM METHOD="get" ACTION="blob.php" enctype="multipart/form-data">
 <INPUT TYPE="hidden" NAME="action" VALUE="upload">
   File:
   <INPUT TYPE="file" NAME="datei" size="50" accept="image/*">
   <INPUT TYPE="submit" VALUE="Upload">
</FORM>
</BODY>
</HTML>
<?php
}
?>


blob2.php
<?php
  include "../includes/Head.inc";
  include "../includes/mysqlcon.inc";
  mysqlcon();

  $sql = "SELECT * FROM blubb;";
  $result = mysql_query($sql);
  while ($line = mysql_fetch_array($result, MYSQL_ASSOC))
  {
    echo $line['Name'] . ":<br>";
    echo "<img src=\"blob3.php?Name=" . $line['Name'] . "\"><br><br>";
  }

  mysql_close();

  include "../includes/Foot.htm";
?>


blob3.php:
<?php
  include "../includes/mysqlcon.inc";
  mysqlcon();

  $Name = $_GET['Name'];
  $sql = "SELECT * FROM blubb WHERE Name='$Name';";
  $result = mysql_query($sql);
  while ($line = mysql_fetch_array($result, MYSQL_ASSOC))
  {
    echo $line['Daten'];
  }

  mysql_close();
?>


Anmerkungen:
1. Dieser Code ist "Quick & Dirty"...
2. Komischerweise überträgt mein FireFox NUR den Dateinamen selbst. OHNE PFAD! Diesen muss man eventuell selber einfügen...
(http://wo.auch.immer...-1116356032.jpg)
3. Mit POST wollte das GAR NICHT funktionieren :ph34r:
4. mysqlcon.inc enthält die Funktion mysqlcon() die, wie ihr euch sicher denken könnt, die Datenbank öffnet :huh:
5. Über Ratschläge und Tipps, warum 2. und 3. nicht funktionieren, wäre ich sehr froh :cool:

EDIT:
6. blob.php ist ein Script, das ich aus dem Internet heruntergeladen und modifiziert habe...
Quelle des Originals:
http://www.onlamp.com/pub/a/php/2000/09/15...sql.html?page=1

Dieser Beitrag wurde von Mr_Maniac bearbeitet: 08. Juni 2005 - 15:15

0

#7 Mitglied ist offline   Floele 

  • Gruppe: aktive Mitglieder
  • Beiträge: 919
  • Beigetreten: 22. Juni 04
  • Reputation: 0

geschrieben 08. Juni 2005 - 15:18

Vielleicht solltest du dir mal das durchlesen:
http://de2.php.net/f...res.file-upload

Ich kann mir kaum vorstellen dass der IE den kompletten Pfad überträgt, weil man damit auf dem Server überhaupt nichts anfangen kann.
0

#8 Mitglied ist offline   Mr_Maniac 

  • Gruppe: aktive Mitglieder
  • Beiträge: 770
  • Beigetreten: 29. Juli 02
  • Reputation: 1
  • Geschlecht:Männlich
  • Interessen:Vieles rund um den Computer
    Musik

geschrieben 08. Juni 2005 - 15:41

Ähem...
Tja... Uhm... Ich habe halt ganz vergessen, dass ich das ja machen kann, da ich den WebServer auf meinem PC laufen lasse... Sorry...

So... Hier ein korrigiertes blob.php:
<?php
if ($_POST['action'] == "upload") {

  include "../includes/Head.inc";

  include "../includes/mysqlcon.inc";
  mysqlcon();

  if ($_FILES)
  {
    $binFile = $_FILES['datei']['tmp_name']; //Name der temporären Datei auf dem Server.
    $Name = $_FILES['datei']['name']; //Dateiname
    $data = addslashes(fread(fopen("$binFile", "rb"), filesize ($binFile)));
    $sql = "INSERT INTO blubb VALUES ('$Name', '$data')";
    mysql_query($sql);
    echo "Thank you. The new file was successfully added to our database.<br><br>";
    echo "<a href='blob.php'>Continue</a>";
  }
  mysql_close();
  include "../includes/Foot.htm";
} else {
  include "../includes/Head.inc";
?>
<FORM METHOD="post" ACTION="blob.php" enctype="multipart/form-data">
 <INPUT TYPE="hidden" NAME="action" VALUE="upload">
   File:
   <INPUT TYPE="file" NAME="datei" size="50" accept="image/*">
   <INPUT TYPE="submit" VALUE="Upload">
</FORM>
<?php
include "../includes/Foot.htm";
}
?>


Wenn man etwas hochlädt, erstellt PHP erst eine temporäre Datei mit dem hochgeladenen Inhalt.
Nun wird diese Temporäre Datei geöffnet und deren Inhalt mit dem original-Dateinamen in die MySQL-Datenbank eingefügt.
Die Dateien blob2.php und blob3.php bleiben aber gleich.

Dieser Beitrag wurde von Mr_Maniac bearbeitet: 08. Juni 2005 - 16:23

0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0