Probleme mit DownloadSkript
Hallo,
verwende ein Downloadskript von der Webseite http://www.it-academy.cc/article/1400/PHP:+Dateien+in+mySQLTabelle+spei .... Der Upload funktioniert tadellose, er postet mir den Inhalt in die Datenbank. Wenn ich nun einen Download starte, dann kann ich die DAtei zwar downloaden, aber er fügt mir immer noch den Header mit in die Datei ein. Das ist mir jetzt bei iener Textdate aufgefallen. Woran kann das liegen? Bilder sind somit natürlich überhaupt nicht mehr anzugucken.
Könnte es daran ligen, dass ich mein Downloadskript im Header mittels PHP includiere?
Derzeit erscheint mir das mehr als merkwürdig, hoffe ihr könnt mir helfen. Hier der Code, der beim Klick auf den DownloadButton ausgeführt wird:
if(isset($_POST['download'])){
Den Browser zum Download zwingen
header("Content-type: " . $datensatz['fileTyp']);
Wenn Datei ein Bild ist, dann wird es nur angezeigt und nicht downgeloaded
if(strpos($datensatz['fileTyp'], "image") === false){
header("Content-disposition: attachment; filename=".$datensatz['fileName'].";");
header("Content-length: " . $datensatz['fileSize']);
}
// Daten dekodieren und an den Browser senden
echo base64_decode($datensatz['fileContent']);
exit();
}
verwende ein Downloadskript von der Webseite http://www.it-academy.cc/article/1400/PHP:+Dateien+in+mySQLTabelle+spei .... Der Upload funktioniert tadellose, er postet mir den Inhalt in die Datenbank. Wenn ich nun einen Download starte, dann kann ich die DAtei zwar downloaden, aber er fügt mir immer noch den Header mit in die Datei ein. Das ist mir jetzt bei iener Textdate aufgefallen. Woran kann das liegen? Bilder sind somit natürlich überhaupt nicht mehr anzugucken.
Könnte es daran ligen, dass ich mein Downloadskript im Header mittels PHP includiere?
Derzeit erscheint mir das mehr als merkwürdig, hoffe ihr könnt mir helfen. Hier der Code, der beim Klick auf den DownloadButton ausgeführt wird:
if(isset($_POST['download'])){
Den Browser zum Download zwingen
header("Content-type: " . $datensatz['fileTyp']);
Wenn Datei ein Bild ist, dann wird es nur angezeigt und nicht downgeloaded
if(strpos($datensatz['fileTyp'], "image") === false){
header("Content-disposition: attachment; filename=".$datensatz['fileName'].";");
header("Content-length: " . $datensatz['fileSize']);
}
// Daten dekodieren und an den Browser senden
echo base64_decode($datensatz['fileContent']);
exit();
}
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 94752
Url: https://administrator.de/contentid/94752
Ausgedruckt am: 22.11.2024 um 16:11 Uhr
8 Kommentare
Neuester Kommentar
Ich denke du hast nur grad ne Denkblockade... Der PHP-Teil hat nichts mit dem HTML-Header zu tun. Das mit dem Base64 spielt auch keine Rolle. Du musst das Download-Script nur vom HTML-Template lösen und zwar vollständig. Wenn du den Download von Bedingungen abhängig machen willst kannst du doch aus dem Download-Script heraus per header(Location...) ne Umleitung machen. Fakt ist: Das Download-Script darf nicht ein Fitzelchen HTML ausgeben.