Hallo liebe Leute,
also ich würde gerne von meiner homepage aus in einem frame-Fenster einen downloadlink starten lassen. Genauer, ein pdf-file und an anderer Stelle eine *.vfc Datei.
Jetzt klappt das im IE ganz gut, aber Mozilla läd die Dinger nich runter, sondern öffnet die in einem Fenster.
Meine Frage also, wie kann ich von einem Link aus einen Download erzwingen?
Beste Grüße,
Norrin
Das geht nicht
Hallo Norrin,
was ein Browser aus einem Link macht, ist dessen Einstellungssache. Opera 9 will z.B. torrent-Dateien unbedingt selbst starten, das lässt sich umstellen, aber das muss der Benutzer in der Software machen. Als Webautor hast Du keinen Einfluss darauf. Wenn ein Browser mit irgendeinem Format was anfangen kann, wird er es auch versuchen, anstatt die Datei zum Download anzubieten.
Vielleicht geht mit JavaScript was.
Gruß
Stefan
Hmmm aber wie machen denn zB PC-Welt o.ä. Anbieter das, sie Dateien zum download anbieten?
Komisch das ganze.
LG Norrin
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Ich Denke Das Geht nicht. (oder jedenfalls nicht zuverlässig)
die meisten browser führen eine zweistufige erkennung
durch anhand von datei endung und mimetype
du könntest deinen websever natürlich dazu verannlassen
die pdf datei nit mit dem mimetype „application/pdf“ zu
senden sondern mit einem anderen mimetype in der hoffnung das der
browser nicht weist was er damit anfangen soll und die standard lösung
„downloaden“ verwendet.
aber das ist auch keine garantie dafür das es der client browser
auch wirklich so macht wie von dir vorgestellt.
alternativ kannst du die pdf datei natürlich auch in ein zip verpacken
oder ähnliches
gruss chris
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hallo Norrin,
das geht zum Beispiel mit PHP (ganz oben in den Header der Datei):
header("Content-Type: application/pdf");
header("Content-Disposition: attachment; filename=\"Downloadname.pdf\"");
include 'Pfadzurdatei/datei.pdf';
exit();
Grüße,
Dietmar
Hallo Dietmar,
also vielen Dank für deinen Hinweis, bzw. deine Lösung.
Leider bin ich in php garnich fit… also wird das wohl nichts werden.
Trotzdem danke… dann muss es halt so gehen.
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Meta-Refresh
Hmmm aber wie machen denn zB PC-Welt o.ä. Anbieter das, sie
Dateien zum download anbieten?
Auf der Download-Seite wird mit einem Meta-Refresh nach einer kurzen Wartezeit die Datei geöffnet. Und da ein Browser mit .exe, .msi, .zip oder .exe selbst nichts anfangen kann, bietet er an die Datei einfach mal zu speichern.
Gruß
Stefan
Nur bei Opera und FF
du könntest deinen websever natürlich dazu verannlassen
die pdf datei nit mit dem mimetype „application/pdf“ zu
senden sondern mit einem anderen mimetype in der hoffnung das
der
browser nicht weist was er damit anfangen soll
Die Typinformation interessieren nur Opera (ziemlich zickig) und Firefox. Dem IE ist das ziemlisch wurscht. Meiner Erfahrung nach interessiert den nur der Inhalt oder die Extension.
Gruß
Stefan
Hallo Norrin,
also vielen Dank für deinen Hinweis, bzw. deine Lösung.
Leider bin ich in php garnich fit… also wird das wohl nichts
werden.
die Frage ist eigentlich nicht, was du bisher kannst, sondern was kann dein Server?
Wenn er PHP kann, dann reicht mein kleiner Code schon aus, da brauchst du nicht viel für zu lernen.
Wenn nicht, wär die Frage, ob du eigenen .htaccess-Dateien anlegen kannst? Damit gehts meines Wissen nach auch. Müßte man dann mal nach googeln, wie es damit funktioniert!
Grüße,
Dietmar
Hallo Dietmar,
also mein Server kann php. Nur ich wie gesagt nich
Ich hab jetzt mal versucht das script bzw deinen code im editor einzufügen, die dateinamen anzupassen und dann als *.php zu speichern. Das ganze hab ich upgeloadet und dann … ja dann… klapppt nix. Der zeigt mir nur den code als Text an…
Was tun?
Hach ich bin ja so unfähig!
LG Norrin
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hallo Norrin,
Was tun?
Hach ich bin ja so unfähig!
ich denke du hast einfach vergessen dem Server mitzuteilen, dass er das was da steht auch als PHP behandeln soll. Ums kurz zu machen, vor und nach php gehört: „“ und „?>“!
also:
header("Content-Type: application/pdf");
header("Content-Disposition:attachment;filename=\"Downloadname.pdf\"");
include 'Pfadzurdatei/datei.pdf';
exit();
?\>
Grüße,
Dietmar
Hallo Dietmar alter Brieffreund 
ich bin tatsächlich unfähig… auf jeden Fall gibt der mir folgendes aus:
Warning: Cannot modify header information - headers already sent by (output started at /usr/www/users/meyerhu/rvg.php:2) in /usr/www/users/meyerhu/rvg.php on line 4
Warning: Cannot modify header information - headers already sent by (output started at /usr/www/users/meyerhu/rvg.php:2) in /usr/www/users/meyerhu/rvg.php on line 5
Warning: main(): open_basedir restriction in effect. File(…/kos/rvg.pdf) is not within the allowed path(s): (/usr/www/users/meyerhu:/usr/home/meyerhu:/tmp:/usr/local/lib/php) in /usr/www/users/meyerhu/rvg.php on line 6
Warning: main(…/kos/rvg.pdf): failed to open stream: Operation not permitted in /usr/www/users/meyerhu/rvg.php on line 6
Warning: main(): Failed opening ‚…/kos/rvg.pdf‘ for inclusion (include_path=’.:/usr/local/lib/php/’) in /usr/www/users/meyerhu/rvg.php on line 6
Tja… und nu?
LG Norrin
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hallo Norrin,
Tja… und nu?
hihi, hab ich fast erwartet!
Deswegen hatte ich ja schon geschrieben, dass die Zeilen ganz nach oben gehören.
Außerdem,
dieses Skript stellt im Prinzip deine PDF-Datei dar! Also schreib in eine Datei „pdf.php“ nix anderes rein als dieses Skript.
In eine andere Datei kannst du nun den Link setzen:
Hier gibts nen PDF zum Download
Grüße,
Dietmar
Deswegen hatte ich ja schon geschrieben, dass die Zeilen ganz
nach oben gehören.
Ich dachte das hätte ich getan.
Außerdem,
dieses Skript stellt im Prinzip deine PDF-Datei dar! Also
schreib in eine Datei „pdf.php“ nix anderes rein als dieses
Skript.
Hmm… das hab ich auch… also ich hab im Editor ein neues file gemacht. hab dein Skript reinkopiert und nur den dateinamen verändert
In eine andere Datei kannst du nun den Link setzen:
Hier gibts nen PDF zumDownload
naja ich hab das file halt direkt aufgerufen… kann das einen unterschied machen?
Grüße,
Dietmar
Grüße Norrin 
P.S. Oh man… tut mir echt leid, dass ich so ein Trottel bin 
Hallo Norrin
naja ich hab das file halt direkt aufgerufen… kann das einen
unterschied machen?
nein, das ist total egal.
Aber deine Fehlermeldung sagt eindeutig, dass vor dem Skript noch HTML stand. Eventuell sogar nur ein Leerzeichen.
Grüße,
Dietmar