Michael Praschl: Datei an User senden

Beitrag lesen

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