Hallo Leute!
Ich bin dabei eine Kontaktverwaltung für primär mich im Job zu erstellen. Die Daten werden mit mcrypt_encrypt verschlüsselt abgelegt, was klappt. In die DB kommen auch ausgewählte Dateien wie PDF, JPG und sonstige. Unverschlüsselt klappt das, schon mit base64_encode scheint die Formatierung schaden zu nehmen. Der relevante Code ohne Schnickschnack ist:
Seite die den Upload verarbeitet:
So klappt das, lade ich ein PDF hoch, wird es als solches erkannt und im Browser richtig angezeigt. Nimmt man base64_decode und base64_encode rein, klappt es nicht mehr. Der Browser öffnet zwar "application/pdf" wirft aber den Hinweis auf "Das PDF-Dokument wird eventuell nicht richtig angezeigt". Scheinbar stimmt die Formatierung von "$data" nicht mehr.
Ich stehe voll auf dem Schlauch, hat jemand den Durchblick und eine Idee?
Besten Dank!
Joy
Ich bin dabei eine Kontaktverwaltung für primär mich im Job zu erstellen. Die Daten werden mit mcrypt_encrypt verschlüsselt abgelegt, was klappt. In die DB kommen auch ausgewählte Dateien wie PDF, JPG und sonstige. Unverschlüsselt klappt das, schon mit base64_encode scheint die Formatierung schaden zu nehmen. Der relevante Code ohne Schnickschnack ist:
Seite die den Upload verarbeitet:
PHP-Code:
// benötigte Daten
$name = $dbLink->real_escape_string($_FILES['uploaded_file']['name']);
$mime = $dbLink->real_escape_string($_FILES['uploaded_file']['type']);
$data = $dbLink->real_escape_string(file_get_contents($_FILES ['uploaded_file']['tmp_name']));
$size = intval($_FILES['uploaded_file']['size']);
$heutetimestamp = strtotime("now");
// $data = base64_encode($data);
$query = "INSERT INTO `file` (
`kd_id`, `beschreibung`, `name`, `mime`, `size`, `data` , `created`
)
VALUES (
'{$kd_id}', '{$beschreibung}', '{$name}', '{$mime}', {$size}, '{$data}', '{$heutetimestamp}'
)";
// Execute the query
$result = $dbLink->query($query);
Und von der Ausgabeseite:
$abfrage = "SELECT * FROM file WHERE id = '$id'";
$ergebnis = mysqli_query($db_link, $abfrage);
while($row = mysqli_fetch_object($ergebnis))
{
$id2 = $row->id;
$beschreibung2 = $row->beschreibung;
$name2 = $row->name;
$mime2 = $row->mime;
$size2 = $row->size;
$data2 = $row->data;
$created2 = $row->created;
}
// $data2 = base64_decode($data2);
H*e*a*d*e*r("Content-Type: $mime2"); // auf Wunsch header unsausführbar gemacht ...
echo $data2;
Ich stehe voll auf dem Schlauch, hat jemand den Durchblick und eine Idee?
Besten Dank!
Joy

Kommentar