steckl: Dateidownload

Beitrag lesen

hallo,

vereinfacht sieht das so aus:

my $datei = 'download.datei';

my $pfad = 'pfad/zu/datei/' . $datei;
my $laenge = (stat("$path_file"))[7];
print "Content-Type:application/x-download\n";
print "Content-Length:$laenge;\n";
print "Cache-Control:private;\n";
print "Content-Disposition:attachment;filename=$datei\n\n";
open (FILE,"<$pfad");
binmode(FILE);
binmode(STDOUT);
while(defined(my $outfile = <FILE>)) {
  print "$outfile";
};
close(FILE);

  
ich hab inzwischen ne andere loesung fuer den header gefunden, dabei muss ich nichtmal die laenge des files bestimmen:  
  
~~~perl
  
    print "Content-type: application/octetstream\n";  
    print "Content-disposition: attachment; filename=\"$fileName\"\n";  
    print "Pragma: public\n\n";  
  
    open ( FILE, "$downloadDir/$fileName") || (errorOut("Couldn't open: $fileName") );  
    while ( my $word = <FILE>) {  
        print "$word";  
    }  
  
    close FILE;  
  
  

funktioniert das auch immer, oder gibt es faelle in denen nur deine Loesung funktioniert?

Ja, aber nicht vergessen, in den Binärmodus zu schalten.

das sollte ich wohl noch einbauen (obwohl es komischerweise auch anders geht)

mfG,
steckl