Bildausgabe funktioniert nicht.

soa

Erfahrenes Mitglied
Langsam weiß ich nicht mehr weiter.
Ich möchte nach einem Bildupload einfach das Bild darstellen.
Leider wir immer nur ein BLANK dargestellt.

Methode1. Link in DB ...sehr enfach , nur falscher OWNER u. GRUPPE auf dem Server.

nicht die Rechtefür chgrp() und chown()... Welche Möglichkeiten gibt es, dass Bild trotzdem darzustellen?


Methode2: Bild in DB

Einlesen funktioniert prächtig....

PHP:
$data = addslashes(fread(fopen($pfad.$name, "r"), filesize($pfad.$name)));
   
   mysql_query("
                INSERT INTO binary_data
                ( data,   name , size,  type) 
        VALUES  ('$data','$name','$size','$type')", $db)or die(mysql_error());
    
    mysql_close($db);

    $_SESSION["upload"] = $name;

nur das Auslesen läuft gar nicht. Hier mein Code:

PHP:
<?php

$db=@mysql_connect("localhost","root","")or die(mysql_error());
@mysql_select_db("weblog", $db)or die(mysql_error());

$bild = $_SESSION["upload"];
//in der Session befindet sich der Name des Bildes

                    
 $ergebnis = @mysql_query(" SELECT
                                data, 
                                name , 
                                size,
                                type
                            
                                FROM binary_data  
                                WHERE name = '$bild' ", $db)or die(mysql_error());                     


$data = @MYSQL_RESULT($ergebnis,0,"data");
$type = @MYSQL_RESULT($ergebnis,0,"type");

Header("Content-type:$type");
echo $data;


?>

Der Ausgabecode liegt in einer extra Datei "bildausgabe.php
und wird auf der index.php

mit echo "<img src='.bildausgabe.php'>"; ausgegeben...

:confused: Wäre für einen Rat echt dankbar.

Gruß
SOA
 
Hallo Soa,

da Du ja durch des fread Rohdaten in die Datenbank schreibst, bekommst Du imho auch beim Auslesen wieder Rohdaten geliefert. Die müsstest Du jetzt wieder in ein Bild umwandeln. Hab mich mal kurz mit imagecreate rumgeärgert, bin aber auf die schnelle auf keinen grünen Zweig gekommen...

Geklappt hat es mit einer temorären Bilddatei, in die die ausgelesenen Daten aus der Datenbank geschrieben werden, so zB.
Code:
// bla bla sql Abfragen....

$uploadedimg = "tmp.jpg";
$uploadedimghandler = fopen( $newfile , "x" );
fwrite( $uploadedimghandler, $data );
fclose( $uploadedimghandler );

echo "<img src=\"".$uploadedImg."\">";
ich hoffe ich konnt Dir a weng weiterhelfen....

vg Clemens
 
Hi,

vor kurzem ging es hier im Forum um das gleiche Thema. Weiß leider nicht mehr wie es heißt.
Am sinnvollsten ist es die Bildausleseroutine in ein seperates Skript zu packen und dieses dann als img src anzugeben. Z.B. so:

<img src="meinskript.php?id=3">

, wobei die id die id des Bildes ist, was Du ausgeben willst.

Marcus.
 
Zurück