Forum Webscript.Ru

Программирование => Perl => Тема начата: WG от 02 Апреля 2004, 22:57:17

Название: Окно загрузки пр нажатии на ссылку
Отправлено: WG от 02 Апреля 2004, 22:57:17
Проблема следующая: нужно чтобы при нажатии на ссылку файл (text.doc), он не открывался в браузере а предлагалось его download. Если я пишу:

download.pl

#!/usr/bin/perl
##############
$filename = \'text.doc\';
$bytes = -s "$filename";
open(FILE,"$filemame");
binmode FILE;
read(FILE,$file,$bytes);
close(FILE);
print "Content-type: application/force-download\\n";
print "Content-Disposition: attachment; filename=$filename\\n";
print "Content-length: $bytes\\n\\n";
binmode STDOUT;
print $file;

то при этом файл сохраняется с нулевой длиной (пустой)
и при появлении окна загрузки выдается не имя документа а имя скрипта, что не так?
Название: Окно загрузки пр нажатии на ссылку
Отправлено: ondr от 03 Апреля 2004, 01:09:35
open(FILE,"$filemame");
-----------------------^

perldoc strict
perldoc warnings
Название: Окно загрузки пр нажатии на ссылку
Отправлено: Karabas от 12 Апреля 2004, 17:26:41
У меня работает это :

sysopen(FILE, "$file", O_RDONLY);
print "Content-Disposition: multipart\\/form-data\\; filename=\\"$name\\" \\n\\n";
binmode FILE;
binmode(STDOUT);
while(read(FILE, my $data, 1024)){print $data}
close FILE;