voli: Datei an User senden

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

  1. 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

    1. 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

      1. 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

  2. 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