PDA

Vollstndige Version anzeigen : Datei Download erzwingen


DiJae
05-11-2003, 14:56
Moin,

gibt es eine Mglichkeit, dass man vermeidet, dass man bei einem Click auf einen Link, der zu einer Datei auf dem Server fhrt, diese Datei im Fenster geffnet wird? Beispiel: Wenn ich ein Word Dokument als Download anbiete, dann mchte ich nicht, dass diese Dokument geffnet wird, sondern dass sich in dem Moment das typische 'Speichern unter...' Fenster ffnet und die Datei lokal abgelegt werden kann.

Ren_M
05-11-2003, 15:59
datei_doc.zip

sourcecode
05-11-2003, 17:53
Als zip-File => Bldsinn, denn

1. Woher willst du denn wissen, dass es beim user so eingestellt ist, dass das downgeloadet wird?
2. Wieso extra ein anderes Format?

Statt zur Datei zu linken, linke zum Downloadskript. In diesem sollte folgendes stehen:

<?php
$Datei = "PfadzurDatei/Dateiname.Dateiendung";
$Dateiname = basename($Datei);
$Gre = filesize($Datei);
header("Content-Type: application/force-download");
header("Content-Disposition: attachment; filename="$Dateiname"");
header("Content-Length: $Gre");
readfile($Datei);
?>

Die Header teilen dem Browser mit, dass die Datei downgeloadet werden soll, wie sie heit und wie gro sie ist.

Ich verwende selber so ein Downloadskript - allerdings soll es noch ein bisschen mehr knnen und genau da gibt es Probleme:
Downloads sollten geloggt werden, auch solche, die abgebrochen werden - und dann soll erfasst werden, wieviel Daten der user bis dahin downgeloaded hat - leider funktioniert aber nicht die Verbindungskontrolle (connection_aborted und so).

Woran knnte es liegen, dass das nicht funktioniert, welche Bedingungen mssen erfllt sein? Was kann man noch alternativ machen, um Verbindungsabbruch festzustellen?

Ren_M
05-11-2003, 18:25
hi sourcecode,

mal ne dumme Frage, was ist wenn er gar kein PHP nutzen kann bzw. zur Verfgung steht?

Und in jedem Browser den ich kenne wird eine *.zip zum DL angeboten und nicht im Browser angezeigt.

sourcecode
05-11-2003, 19:18
Okay, knnte natrlich sein, dass php nicht zur Verfgung steht (seeeeeeeehr unwahrscheinlich)...dann irgendwie anders lsen. Ja zip wird zum Download angeboten - muss aber nicht, und ist auerdem ein anderes Format.

Ren_M
05-11-2003, 20:33
hi sourcecode,

PHP ist aber auch nicht *.doc ;-)

sourcecode
07-11-2003, 15:44
Deshalb gibst du ja mit header("Content-Disposition: attachment; filename="$Dateiname""); den Dateinamen an - da schreibst du dann natrlich nicht den Namen des PHP-Skripts, sondern den der Download-Datei, also z.B. header("Content-Disposition: attachment; filename="example.doc""); und dann wird dieser Dateiname beim Speichern angeboten.

Ren_M
07-11-2003, 17:19
Original geschrieben von sourcecode
...Ja zip wird zum Download angeboten - muss aber nicht, und ist auerdem ein anderes Format.

Meinte eigendlich du verwendest PHP damit es geht und ich eben *.zip. Du meinst *.zip funktioniert nicht immer, ich meine PHP kann nicht jeder nutzen. ;-)

sourcecode
07-11-2003, 20:07
Du verwendest zip - zip komprimiert die Daten und erfordert beim user ein extra programm (also zustzlich zu word zum lesen der doc-datei auch ein zip-programm zum entpacken der komprimierten datei).

Ich verwende php - das komprimiert nicht, sondern schleust sie 1:1 durch => es erfordert also kein extra programm zum dekomprimieren. Und da wir ja hier bei selfphp sind, gehe ich mal davon aus, dass der server php kennt - wenn das so ist, wieso nicht nutzen ? Dem Client ist das absolut egal, dass der Download ber ein php-skript luft.

Ren_M
07-11-2003, 20:56
... richtig wir sind hier bei selfphp aber das (Unter)Forum heit "HTML und JavaScript Help!" sage mir wer kein Packprogramm auf seinem Rechner hat. Wenn du jetzt sagst gibt es dann sag ich wieder nicht jeder Hoster stellt PHP bereit.

sourcecode
08-11-2003, 12:49
Wenn Hoster PHP bereitstellt => Nutze es.
Wenn Hoster kein PHP bereitstellt => vielleicht hat der ja ASP oder sowas, womit man das vielleicht auch machen kann