Mailinglisten-Archive |
Hallo Tobias,
TR> Versuch mal:
TR> while(!feof($fd))
TR> {
TR> $contents .= fread($fd, 64);
TR> }
werde ich gleich einmal ausprobieren, obwohl ich das Problem gestern
abend elegant umgangen bin :)
Die einwandfrei funktionierende Lösung war nun folgende (just FYI):
(vielleicht auch für andere php-coder interessant)
Der folgende Abschnitt kopiert lokale Bilddateien, die ich vorher
base64-kodiert habe (=reine ascii-files) in die mySQL-Datenbank. Um
die in der Datenbank gespeicherten Bilder wieder auszugeben, verwende
ich den zweiten Abschnitt mit der Funktion base64_decode():
8<-----------8<-----------8<-----------8<-----------8<-----------
$server="...";
$userid="...";
$password="...";
$dbh=mysql_connect($server,$userid,$password);
mysql_select_db("celephais");
function copy2database ($host, $pfad, $file, $anzbilder)
{
for ($j = 1; $j <= $anzbilder; $j++) {
$contents=file("http://$host$pfad$file$j.b64");
$a="";
$i=0;
$end=false;
reset($contents);
while (!$end)
{
$i++;
if ($i>count($contents))
$end=true;
else
$a=$a.next($contents);
}
$result = mysql_db_query("celephais", "UPDATE bilderdb SET Bild_Blob=\"$a\" WHERE Bild_Nr=$j");
}
}
$host = "141.28.228.159";
$pfad = "/bilderdb/";
$file = "cd1_";
$anzbilder = 9;
copy2database($host, $pfad, $file, $anzbilder);
echo "Finished.<br>";
?>
8<-----------8<-----------8<-----------8<-----------8<-----------
<?
$server="...";
$userid="...";
$password="...";
$dbh=mysql_connect($server,$userid,$password);
mysql_select_db("celephais");
$result = mysql_query("SELECT Bild_Blob FROM bilderdb WHERE Bild_Nr=$bildnr");
$i = 0;
while ($i < mysql_num_rows($result)) {
$b=mysql_result($result, $i,"Bild_Blob");
$i++;
};
$dekodiert=base64_decode($b);
Header("Content-type: image/jpeg");
echo $dekodiert;
?>
8<-----------8<-----------8<-----------8<-----------8<-----------
Gruss,
Gerrit
php::bar PHP Wiki - Listenarchive