closed
Goto Top

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();
}

Content-ID: 94752

Url: https://administrator.de/contentid/94752

Ausgedruckt am: 22.11.2024 um 16:11 Uhr

Codehunter
Codehunter 19.08.2008 um 11:22:03 Uhr
Goto Top
Überprüfe mal, ob vor dem <?php oder nach dem ?> noch irgendwelche Zeichen (auch Leer- und Zeilenumbruchszeichen) vorhanden sind. <?php muss in Zeile 1 an Position 1 stehen, ?> in der letzten Zeile an Position 1.
Stadt-Husum
Stadt-Husum 19.08.2008 um 11:43:03 Uhr
Goto Top
Hi,

kannst du mal bitte posten, was alles der Textdatei hinzugefügt wird?
Das würde mich mal interessieren... ^^

Gruß Dennis Baum
Stadt Husum
Closed
Closed 19.08.2008 um 13:14:12 Uhr
Goto Top
der inkludierte header

<!DOCTYPE html PUBLIC "-W3CDTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Webportal</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta name="description" content="...l" />
<meta name="author" content="..." />
<meta name="robots" content="noindex, nofollow" />
<!--[if lte IE 7]>
<link href="../include/css/patches/patch.css" rel="stylesheet" type="text/css" />
<![endif]-->
<link href="../include/css/layout.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../include/functions.js"></script>
Codehunter
Codehunter 19.08.2008 um 17:25:59 Uhr
Goto Top
Also in einem Download-PHP-Script darf gar nichts anderes drin stehen als PHP-Code. Nicht mal ein einziges ECHO sonst wird das nix. Außer natürlich dem ECHO welches den Filecontent an sich ausgibt. Vermutlich wird die header()-Anweisung sogar ignoriert. Lass dir mal alle PHP-Fehler reporten.
Closed
Closed 19.08.2008 um 18:41:58 Uhr
Goto Top
naja das ist einfacher gesagt, als getan. ich habe eine layout seite und darin includiere ich das download skript. das wertet die aktion aus, welche der user im formular aufgerufen hat. sprich wenn er den download button anklickt, dann wird die datei downgeloaded, wenn er den abbrechen button anklickt, dann wird zu einem anderen formular gesprungen.

ich könnte natürlich auf den download button reagieren und dann eine weiterleitung zu dem download skript machen. werde das mal probieren

danke schonmal für die antworten
Closed
Closed 19.08.2008 um 21:29:20 Uhr
Goto Top
tja also leider klappt alles nichts. ich benötige zwei dateien vor dem inkludierten download skript. einmal stehen benutzername und so weiter für die datenbank in skript 1 und in skript 2 stehen datenbank funktionen.

was ich vergessen habe zu sagen ist, dass die datei aus einer datenbank mittels base64_decode ausgelesen wird. weiß nicht inwieweit das interessant ist.

gibt es eine andere möglichkeit dateien downzuloaden mittels php?? das mit der datenbank ist mir sehr wichtig, da ich so die dateien benutzern und sonstigen sachenzuordnen kann.
Codehunter
Codehunter 19.08.2008 um 21:35:23 Uhr
Goto Top
Ich denke du hast nur grad ne Denkblockade... face-smile 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.
Closed
Closed 20.08.2008 um 20:23:54 Uhr
Goto Top
Also ich habs jetzt geschafft. es geht indem ich in dem überprüfungsskript eine weiterleitung mache zu einem anderen skript, in dem ich nur den oben angegebenen code einbinde.

danke füür die hilfe. hat mir sehr geholfen face-smile