Datei an User senden
voli
- php
Hallo,
wie kann man eine bestimmte Datei des Servers dem User zusenden, so dass der Dialog bei Ihm sich öffnet, "Datei speicher unter ..." ?
Kann jemand eine Hilfe geben?
Gruss
voli
Hi,
indem man es als Download macht?!
Ich weiss ja nicht genau, ob es da ist, was Du willst, aber sieht mir stark danach aus.
Vorrausgesetzt Du hast eine Datei, die sich vom Browser selbst nicht öffnen lässt. (gif geht z.B. so nicht zu machen)
Aber sonstige, wie .zip oder so, einfach einen Link drauf setzen und schon gehts, auch mit PHP.
echo "<a href='beispiel.zip'>Beispiel-Datei</a>";
Björn
Hi,
indem man es als Download macht?!
Ich weiss ja nicht genau, ob es da ist, was Du willst, aber sieht mir stark danach aus.
Vorrausgesetzt Du hast eine Datei, die sich vom Browser selbst nicht öffnen lässt. (gif geht z.B. so nicht zu machen)
Aber sonstige, wie .zip oder so, einfach einen Link drauf setzen und schon gehts, auch mit PHP.
echo "<a href='beispiel.zip'>Beispiel-Datei</a>";
Hallo,
das Problem, das ich habe, ist, dass diese Datei passwortgeschützt sein soll, d.h. erst nach einer Passwort eingabe soll die Datei abgerufen werden können. .htaccess kann ich nicht verwenden, aber PHP. Deswegen soll nach passworteingabe die Datei "gesendet" werden. Eine eigene Seite dafür anzulegen, sieht etwas komisch aus.
Gruss
voli
Hi,
meines Wissens geht es aber auch mit PHP nur so, das Du eine Passwortgeschützte Seite anlegst.
Warum aber geht .htaccess nicht?
Björn
Hallo,
wie kann man eine bestimmte Datei des Servers dem User zusenden, so dass der Dialog bei Ihm sich öffnet, "Datei speicher unter ..." ?
Kann jemand eine Hilfe geben?
Gruss
voli
hallo,
hier steht die lösung:
<?
// $realfilename enthlt den echten namen und pfad der datei
// der dem gefakten $file zugeordnet ist (datenbank, array, wie auch immer)
$fd = @fopen( $realfilename, "r" ) or die ( "Kann die angeforderte Datei nicht öffnen" );
header("Content-Disposition: attachment; filename=$file");
header("Content-Type: application/zip"); // hier sollte der typ eingetragen werden
header("Content-Length: ".filesize( $realfilename )); // dateigrösse der schönheit halber auch senden
header("Pragma: no-cache");
header("Expires: 0");
// übertragen
fpassthru( $fd );
fclose( $fd );
exit();
?>
das ganze muss über tragen werden bevor irgendein html-output passiert dadurch öffnet sich dem user ein requester in dem er den namen in $file sieht, in wirklichkeit wird aber $realfilename übertragen. ich hab keine möglichkeit gefunden den echten dateinamen rauszufinden, da er nicht mitübertragen wird. wenn sich die datei dann in einem geschützten verzeichnis liegt, sodass auch ein http://myurl/myfile.zip versagen wird, sollte nicht viel passieren können.
lg,
Michael