phpbar.de logo

Mailinglisten-Archive

[php] Downloadskript war [ kurze Frage ]

[php] Downloadskript war [ kurze Frage ]

Hans Theo Mislisch info_(at)_agathos.net
Thu, 25 Jan 2001 09:28:28 +0100


> nach 1 Stunde suchen habe ich etwas gefunden, aber es funktioniert nicht,
> Der Cownload beginnt nicht, sondern die Datei wird angezeigt. Wo genau
> kann ich das denn finden ?

Hallo Stephan,

es gibt 2 Möglichkeiten, die eine mit der Headerfunktion unten, was aber beim
Mickeysoft Browser, wie so oft beschrieben, immer wieder zu Überraschungen
führt.


Ich mach das so, das ist einfacher und funktioniert auch mit M$IE:

DB anlegen in der row[0] die id ist, dann Pfad, Dateiname, Titel, Beschreibung, Größe...



// Download wird ausgelöst
 $dl_query = "select * from $table where id = '$id'";
 $result = mysql_query($dl_query);
 $row  =  mysql_fetch_row($result);
 mysql_query($dl_query);

 if ($row[1]==""){                  // Wenn der Pfad nicht gesetzt ist, benutze Standartpfad
 $dl="http://www.foobar.de/dl_data/".$row[2];    // Standartpfad und Dateiname mergen
 // echo "Test: Schleife1 $dl";
 header("Location: $dl");           // Download Datei wird mit header location ausgegeben.
 }else{
 $dl2=$row[1].$row[2];              // Falls Pfad in db gesetzt ist, Pfad und Dateiname zusammenbauen
 // echo "Schleife2 $dl2";
 header("Location: $dl2");
 }



Das wäre die Möglichkeit wie man mit header und location einen Download startet.
Ich habe das so gemacht, dass man auch von anderen (eigenen) Servern Downloads
anbieten kann. Dann muss eben in Spalte 1 ein Pfad eingetragen sein.

Die andere Möglichkeit wäre:


header("Content-disposition: attachment; filename=$download_file");
header("Content-type: application/x-octetstream");
header("Expires: 0");
readfile($download_file);


Dabei gibts einige Sachen zu beachten, dass die Datei richtig als Download angeboten
wird und das war mir für zip und tar.gz zu aufwendig.


Liebe Grüße

Theo


--
Agathos Networks - Postfach 1114 - D-87515 Sonthofen
Tel: +49 (0)8321 67388-80  Fax: +49 (0)8321 67388-50
mailto:info_(at)_agathos.net


php::bar PHP Wiki   -   Listenarchive