PDF Downloaden

tinella

Erfahrenes Mitglied
Hallo Leute:)

Ich möchte ein Dokument dok.pdf via Link downloaden.
das Dokument befindet sich im Ordner downloads.

Mein Problem:
das File lässt sich zwar downloaden, aber es lässt sich nicht öffnen (bekomme diese Meldung: "Dateifehler, Datei konnte nicht geöffnet werden").

Der Link:
PHP:
<a href="content/download.php?what=1"><img src="pictures/download.gif" /></a>

download.php:
PHP:
<?php
$files = Array(
"1" => "dok.pdf");

$filename = "downloads/".$files[$_GET[what]];

header('Content-Type: application/octet-stream');
header('Content-Length: '.filesize($filename));
header('Content-Disposition: attachment; filename='.$files[$_GET[what]]);
readfile($filename);
?>

Sieht jemand, wo sich der Fehler befinden könnte?

Vielen Dank für eine Antwort,
Tinella
 
Hallo,

hast du vielleicht in deiner download.php vor oder nach dem PHP-Block irgendwelche Leerzeichen? Ansonsten sieht der Quelltext eigentlich korrekt aus.

Grüße,
Matthias
 
Prüfe mal die Dateigröße und öffne sie mit einem beliebigen Texteditor. Vielleicht hast du ja bloß eine Fehlermeldung heruntergeladen.
 
Die Dateigrösse beträgt nur 4KB, statt 461KB.
Aber ich kann mir das nicht erklären. Ich habe die Rechte des Dokuments auf 777 gesetzt, weshalb ist das so?

Kann sich das jemand erklären?

Wäre um Hilfe sehr dankbar...

Tinella
 
Ja, folgendes:

PHP:
<br />
<b>Warning</b>:  filesize() [<a href='function.filesize'>function.filesize</a>]: stat failed for downloads/TreepowerBroschuere2007.pdf in <b>/home/httpd/vhosts/tinella.ch/httpdocs/content/download.php</b> on line <b>8</b><br />
<br />
<b>Warning</b>:  readfile(downloads/TreepowerBroschuere2007.pdf) [<a href='function.readfile'>function.readfile</a>]: failed to open stream: No such file or directory in <b>/home/httpd/vhosts/tinella.ch/httpdocs/content/download.php</b> on line <b>11</b><br />
 
ah ich habs:suspekt:

der fehler war folgender, statt
PHP:
$filename = "downloads/".$files[$_GET[what]];

so:
PHP:
$filename = $_SERVER['DOCUMENT_ROOT'] . "/downloads/".$files[$_GET[what]];

Habe den Pfad falsch angegeben.

Vielen Dank für eure Hilfe!

Wünsche euch noch einen schönen Tag,
Tinella:)
 
Zurück