Hi,
print "HTTP/1.0 300\n";
print "Location: $downloadfile\n\n";
print "Content-type: application/octet-stream\n";
print "Content-length: ","$filesize","\n";nun meine fragen
- ist dies der richtige weg? (nur weil's geht muss es
ja nicht stimmen)
wie Frank schon sagt bringt der Header so nichts. Er ist aber auch nicht nötig, weil der Server alles nötige erledigt. Ein "Location:" bewirkt das gleiche, als würde der Benutzer auf einen Link klicken - Du kannst also alles außer jener Zeile weglassen.
- laesst sich der download einer datei in einem per
passwort (.htaccess o. aehnlich) geschuetzen
verzeichnis ebenso starten?
Wie gesagt gibt es keinen Unterschied zwischen "Location:" und einem Link. Wenn das Verzeichnis passwortgeschützt ist muß der Benutzer also ein Passwort eingeben. Du kannst aber folgenden Weg gehen:
print "HTTP/1.0 300\n";
print "Content-type: application/octet-stream\n";
print "Content-length: $filesize\n";
print "Content-Disposition: filename=$name.zip\n\n"; # Dateiname ist sonst script.pl oder so
open(READ,$datei); # die Datei kann _irgendwo_ auf dem Server liegen, muß also nicht mal über das Internet verfügbar sein!
binmode READ;
binmode STDOUT; # beides ist auf Unix-Servern unnötig, sollte aber dabei sein
while ($line=<READ>) { print $line; }
close(READ);
Cheatah