bilder aus DB anzeigen

  • #1
H

hhghghk

Guest
Hallo


habe ein kleines Prob und zwar möchte ich in der DB gespeicherte Bilder anzeigen ich bekomme jedoch nur ein kreuz ausgegeben. Wer kann mir helfen oder wo ist der Fehler.

Hier mal das Script:



<?
header(Content-type: image/jpeg);

$host=mysql.bytecamp.net;
$dbname=jmfaqson;
$table=testfile;
$user=*****;
$password=*******;



$link= mysql_connect($host, $user,$password);
mysql_select_db($dbname,$link);
$result=mysql_query(SELECT datei FROM $table WHERE id='$id');
if(mysql_num_rows($result)==1){
$data=mysql_result($result,0,0);

echo $data;
}
?>
 
  • #2
Hi

Bevor du ein Bild in die Datenbank schreibst musst du es mit addslashes() bearbeiten, damit bestimmte Zeichen escaped werden.

Gruß, Michael
 
  • #3
Das eintragen in die DB ist kein Problem realisiert habe ich dies mit diesen Script.


<?



echo <form action=\$PHP_SELF\ method=\post\ enctype=\multipart/form-data\>
<input type=\file\ name=\dateineu\><input type=\submit\></form>;


$datei=fopen($dateineu,->r');
$data=addslashes(fread( $datei, $dateineu_size));
$link= mysql_connect($host, $user,$password);
$sql = INSERT INTO $table ( datei )
values(->$data' );
mysql_select_db($dbname,$link);
mysql_query($sql,$link);


?>



Mir bereitet nur die Ausgabe des Bildes Probleme der Verweis zum Bild ist aber richtig (laden.php?id=1) wenn ich html-Dateien in die DB lade funktioniert es ja auch nur bei den Grafiken (jpg) will er nicht.



PS: Die Daten zur DB waren keine gültigen
 
  • #4
PCDReitz schrieb:
Bevor du ein Bild in die Datenbank schreibst musst du es mit addslashes() bearbeiten, damit bestimmte Zeichen escaped werden.

Für MySQL gibt es aber IMHO eine spezielle Funktion, die nur MySQL-spezifische Sonderzeichen escaped.
Das wäre dann $string=mysql_escape_string($string);

Habe das mal auf einen String mit allen möglichen Sonderzeichen ausprobiert. Betroffen davon werden jedoch nur-> und \
 
  • #5
Hi

Hat die Spalte in der Datenbank den Typ blob?
Das ist wichtig. Ansonsten hab ich eigentlich alles genauso in meinen Scripts.

Wenn du bei der Ausgabe den Content-Type weglässt, gibt er dann ein paar Seiten kryptische Zeichen aus, oder gar nichts?
Evtl ist da bei der MySQL Abfrage noch ein Fehler.

Gruß, Michael
 
  • #6
Der Datentyp ist Blob wenn ich den Header weglasse bekomme ich kryptische Zeichen angezeigt.
 
  • #7
Hi

Ah habs :)
$file = fopen($img_file, rb);
Du musst die Datei Binär einlesen lassen, daher rb.
Dann müsste es gehen.

Gruß, Michael
 
  • #8
Ich habe mal die Änderung im Script gemacht jedoch tritt immer noch der gleiche Fehler auf. Was mir noch aufgefallen ist, ich kann mir von der Seite keinen Quelltext anzeigen lassen. :mad:
 
  • #9
Ist es möglich, das mal online zu stellen, dass wir uns einmal den Quellcode (und das was daraus gemacht wird) ansehen können?
 
  • #10
Hier ist mal der Quellcode zum Download . Die Datei db_tabelle_erstelllen.php erzeugt die notwendige MySql-Tabelle.
 
Thema:

bilder aus DB anzeigen

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.963
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben