Hallo,
ich habe in einer MySQL-DB eine Tabelle mit JPEG's
und eine zweite Tabelle mit zugehörigen Personendaten.
Jetzt möchte ich mit einem PHP Script alle Bilder auslesen, Nachnamen als Dateinamen vergeben und im Filesystem als JPEG abspeichern.
Dazu benutze ich erstens die Datei showpic.php
um die Bilder aus der Datenbank darstellen zu können und zweitens das script schreiben.php
um auf das Filesystem des WEB-Servers (xampp-lite)
zu schreiben.
Die Bilder werden nun richtig aus der DB gelesen (weil sie mit der Testausgabe korrekt dargestellt werden).
Im Verzeichnis liegen dann aber nur unbrauchbare Dateien (allerdings mit korrektem Dateinamen).
Wenn ich anstelle von showpic.php ein Testbild.jpg (aus dem Dateisystem) lese und schreibe funktioniert das Script.
Wer kann mir helfen ?
ich habe in einer MySQL-DB eine Tabelle mit JPEG's
und eine zweite Tabelle mit zugehörigen Personendaten.
Jetzt möchte ich mit einem PHP Script alle Bilder auslesen, Nachnamen als Dateinamen vergeben und im Filesystem als JPEG abspeichern.
Dazu benutze ich erstens die Datei showpic.php
PHP-Code:
$host = "1.2.3.4";$user = "xxx";$pass = "yyy";$data = "zzz";
$CID = mysqli_connect($host,$user,$pass);
$DID = mysqli_select_db($CID,$data);
$id = $_GET['id'];
if(!$id) exit;
$SQL="SELECT B_Data, B_Type FROM BILD WHERE B_P_Nr = $id";
$result = mysqli_query($CID,$SQL);
if(!$result) exit;
$row=mysqli_fetch_array($result,MYSQL_ASSOC);
header("Content-type: {$row['B_Type']}");
echo $row['B_Data'];
PHP-Code:
$host = "1.2.3.4";$user = "xxx";$pass = "yyy";$data = "zzz";
$SQL = "SELECT B_P_Nr,CONCAT(P_Nachname,'.jpg') ";
$SQL.= "FROM PERSON INNER JOIN BILD ON P_Nr = B_P_Nr ";
$CID = mysqli_connect($host,$user,$pass);
$DID = mysqli_select_db($CID,$data);
$RID = mysqli_query($CID,$SQL);
while($ERG = mysqli_fetch_array($RID,MYSQL_NUM))
{
/* Testzeile zur Ausgabe im Browser*/
echo "<img src='showpic.php?id=$ERG[0]' />";
ob_start();
$fp = fopen("showpic.php?id=$ERG[0]", "rb");
fpassthru($fp);
fclose($fp);
$file = ob_get_contents();
ob_end_clean();
$fp = fopen("$ERG[1]", "wb+");
fwrite($fp, $file);
fclose($fp);
}
zu schreiben.
Die Bilder werden nun richtig aus der DB gelesen (weil sie mit der Testausgabe korrekt dargestellt werden).
Im Verzeichnis liegen dann aber nur unbrauchbare Dateien (allerdings mit korrektem Dateinamen).
Wenn ich anstelle von showpic.php ein Testbild.jpg (aus dem Dateisystem) lese und schreibe funktioniert das Script.

Wer kann mir helfen ?
Kommentar