Vollständige Version anzeigen : [script] Download script???
Pascal10x
23.08.2007, 12:09
Hiho,
ich hab ne frage. Ich mach gerade eine Homepage da soll ein Beitrittsformular rein das ich auf der Seite anzeigen kann und dann die Leute sich es dann downloadden können. Jetzt hat nen Kumpel gesagt ich soll die Word oder PDF datei auf meinen Server (funpic.de) hochladen und als Hyperlink in meine Seite rein tun. Nur da muss ich rechts klick und Ziel speicher drücken. Wie kann ich machen dass wenn ich auf den Link klicke( auf der Homepage) gleich direkt ein Download Fenster erscheint und ich nicht Rechtsklick-Ziel speichern unter machen muss. Gibt es da ein Script?
Wär voll nett!
Mach doch einfach eine .zip oder .rar der .7z oder .ace draus...
Schlapfm
23.08.2007, 15:52
Du kannst das Ganze natürlich auch mit einem Downloadscript machen:
<?php
function download($file,$name = null){
if($name == null) $name = basename($file);
$size = filesize($file);
header("Content-type: application/octet-stream");
header("Content-disposition: attachment; filename=".$name);
header("Content-Length: ".$size);
header("Pragma: no-cache");
header("Expires: 0");
readfile($file);
}
?>
Aufgerufen wird die Datei dann zum Beispiel so:
<?php
if(isset($_GET['download'])){
$dateiname = $_GET['download'];
download($dateiname);
exit;
}
?>
Der zweite Parameter der Funktion ist nicht unbedingt erforderlich. Wenn er leer bleibt, sucht sich die Funktion einfach als Namen den Dateinamen der Datei aus. (Hui, welch geniale Alliteration).
Das "exit;" ist nur dann erforderlich, wenn das Script normalerweise noch weitergeht, um zu vermeiden, dass der restliche Code mit heruntergeladen wird.
Ob dieses Script auch mit Dateien, die auf einem anderen Server liegen, funktioniert kann ich nicht sagen, ich würde vorschlagen einfach probieren.
Am einfachsten ist es aber sicherlich mit Stones Methode...
In diesem Sinne,
lg, Schlapfm
moin,
man kann den download mit hilfe von php auch erzwingen. ;)
<?
$dateiname="info.pdf";
header("Content-type: application/pdf");
header("Content-Disposition: attachment; filename=".$dateiname."");
readfile("$dateiname");
?>
//edit: schlampf war schneller
Pascal10x
23.08.2007, 18:22
hmmm ok! also jetzt aml angenommen die datei heist beitritt.doc sieht des dann so aus?:
<?
$dateiname="beitritt.doc";
header("Content-type: application/doc");
header("Content-Disposition: attachment; filename=".$beitritt.doc."");
readfile("$beitritt.doc");
?>
stimmt des?
Schlapfm
23.08.2007, 18:44
Hallo Pascal!
Der einzige Fehler in meinen Augen ist die falsche Nutzung der Variablen!
Der Sinn von Variablen ist in erster Linie, dass man einen String (Zeichenkette) "zwischenspeichern" kann, um ihn nicht immer wieder eingeben zu müssen.
Das heißt in der Variable $dateiname ist die Zeichenkette "beitritt.doc" gespeichert. Wenn du nun die Variable verwenden willst geht das wie folgt:
<?php
$dateiname = "beitritt.doc";
header("Content-type: application/doc");
header("Content-Disposition: attachment; filename=".$dateiname);
readfile($dateiname);
?>
Ich habe das Script nicht getestet, müsste aber so funktionieren...
mfg Schlapfm
PS: Mach bitte in Zukunft aus deinem Code einen -Tag -> [Link nur für registrierte und freigeschaltete Mitglieder sichtbar]
Pascal10x
24.08.2007, 13:20
He danke Schlapfm!
Funktioniert vom Feinsten!!!! THX!
Schlapfm
28.08.2007, 13:52
Es war mir ein Vergnügen!
mfg Schlapfm
PS: kann geschlossen werden...
PS: kann geschlossen werden...
Naja find ich ja allgemein nicht so gut; im Supportbereich von uns ok, aber hier hat immer mal jemand noch irgendwas zu sagen und wieso sollte er dann einen neuen Thread aufmachen müssen? ;)
Schlapfm
28.08.2007, 14:11
Alles klar!
Du bist der "Cheffe" ;)
mfg Schlapfm
vBulletin® v3.8.4, Copyright ©2000-2010, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by
vBSEO 3.3.1