"Ziel Speicher unter" bei downloads

ehonk

Mitglied
hi all

hab mir eine kleine Downloaddatenbank mit Counter und Benutzerrechteverwaltung erstellt.

Der Link für einen Download ist z.b. download.count.php?id=......

Die download.count startet dann den Download mit

Code:
 <META http-equiv=\"refresh\" content=\"2; URL='$row->link'\">

Jetzt hab ich natürlich das Problem sobald jemand mit Rechte Maustaste -
"Ziel Speichern unter" an den Downloadlink rangeht lädt er sich nicht
die Datei runter sondern nur html müll.

Gibts eine Möglichkeit dies zu umgehen?
Gibts es auch eine Möglichkeit zu verhindern das z.b. PDFs nicht im Explorer
geöffnet werden, serverseitig?

Danke euch
 
Hallo!

Du kannst das Problem umgehen, wenn Du auf die Weiterleitung verzichtest.
Du verweist direkt auf eine PHP-Datei, an die Du als Parameter den Namen der
Datei angibst, die herunter geladen werden soll. Das PHP-Script erhöht den
Counter für die Datei, liest die Oeriginaldatei ein, verändert den Header und gibt
den Inhalt der Datei an den Browser aus. Dann sieht es auch so aus, alsob Du
direkt auf die Datei verweist. Das Script reicht die Daten einfach nur durch.

Gibts es auch eine Möglichkeit zu verhindern das z.b. PDFs nicht im Explorer geöffnet werden, serverseitig?
Nein, das ist eine client-seitige Einstellungsmöglichkeit. Darauf hast Du serverseitig keinen Einfluss.

snuu
 
also momentan verlinke ich auf download.count.php?ID= ID der Downloaddatei

was mir aber nicht klar ist was du meinst mit Orginaldatei einlesen und
Header verändern?
Ich kenne nur die Möglichkeit mit dem <meta url ........>
Vielleicht kannst du mir noch einen Tip geben.

Danke dir.
 
Nein, das ist eine client-seitige Einstellungsmöglichkeit. Darauf hast Du serverseitig keinen Einfluss.

snuu

Da muss ich dir aber wiedersprechen. Es ist durchaus möglich
JEDE Datei am Browserinternen öffnen vorbeizuführen :

PHP:
header("Content-Disposition: attachment; filename=downloaded.pdf");

http://de.php.net/header

Oder reden wir beide aneinander vorbei :-)

Nils
 
so hab nun etwas damit rumgespielt und es funktioniert.
Hab für meine Website noch die ob_start und ob_end einfügen müssen.

Code:
header("Content-type: application/pdf");

header("Content-Disposition: attachment; filename=downloaded.pdf");

readfile('original.pdf');

Mit readfile hole ich ja die Datei die dann zum download bereitgestellt wird.

Brauche ich den Header mit content-Type? Was bedeutet hier application/pdf?
Ich müsste dann praktisch für jeden Datentyp den ich anbiete einen header machen?`

Danke euch für die super hilfe
 
Zurück