Sönke Tesch: zipfile wird nicht im browser angezeigt

Beitrag lesen

Ich habe mir unter http://www.dclp-faq.de/q/q-datei-download.html Quelltext fuer einen dateidownload via PHP gesucht und nun versucht ueberhaupt erstmal die zum download bestimmte datei auf dem apache-server anzeigen zu lassen.

Doch das Einzige was ich angezeigt bekomme, ist der Kommentar, der im zischen den bodytags der Datei steht.

"Der im zischen den bodytags der Datei steht"? Was soll das bedeuten? Welche Datei, das Skript oder die zu übertragende Datei? Wenn's die zu übertragende ist, was für "bodytags" des zip-Formates meinst Du?

Das zipfile liegt im Probierverzeichnis htdocs/info01scripte welches ich auch als $basedir angegeben habe. Kann mir jemand sagen weshalb mir der Dienst versagt wird?

Wenn er Dir versagt wird, warum sagst Du dann, daß Du etwas angezeigt bekommst? Was passiert denn nun genau?

Hier ein Teil des Quelltexts der download.php:

Die Aussage "ein Teil" deutet leider immer darauf hin, daß der Fragenstellende die Hälfte mit dem Wichtigen vergessen hat ;)

$download = $_GET['download'];

// Übersetzung von Download-Bezeichner in Dateinamen.
$filelist = array(
  "file1" => "htdocs/info01scripte/xmas2000.zip"
   );

// Einbruchsversuch abfangen.
if (!isset($filelist[$download]))
  die("Datei $download nicht vorhanden.");

..wie erwartet. Wo wird denn da etwas ausgegeben? Ich sehe nichtmal das eigentliche "Arbeitstier", readfile(). Und auch keine "bodytags". Eigentlich gar nichts von dem, was ausgegeben werden soll (die Fehlermeldung "nicht vorhanden" hattest Du nicht erwähnt).

Schuss in's Blaue: Du gibst zwar in dem nicht aufgeführten Codeteil die Datei per readfile() aus, hast aber vergessen, dem Browser den Inhaltstyp (Content-Type) mitzuteilen, so daß er jetzt entweder versucht, die zip-Datei als text/html auszugeben (der Standardtyp für Ausgaben von PHP-Skripten) oder versucht den Typ selbst zu erraten und die Datei auspackt.

Oder muesste ich den Parameter $download in einer anderen Datei als link  setzen, damit's funktioniert?

download muß nur in der URL hinterm Fragezeichen auftauchen, sprich "script.php?download=file1" muß zu irgendeinem Ergebnis führen.

Gruß,
  soenk.e