Forum Webscript.Ru
Программирование => Perl => Тема начата: Karabas от 11 Апреля 2004, 03:43:26
-
Передача файла из скрипта , клиенту...
У меня это делает такой скриптец :
sysopen(FILE, "$file", O_RDONLY);
binmode(FILE);
@sabj = ;
close(FILE);
binmode(STDOUT);
print "Content-Disposition: multipart\\/form-data\\; filename=\\"$name\\" \\n\\n";
print @sabj;
Можнт и по ламерски написано, но всё работает....
Единственное , что мне не нравится, это то что при большом размере файла, скипт его пока прочитает в буфер....
Это жутко грузит сервер....
Может кто знает как переделать, что-б скрипт читал файл по мере его отправки ...
И ещё.....
Как сделать что-б из этого-же скрипта , клиенту отправлялась сначала страничка HTML ( типа предупреждение о посылке файла), а потом сам файл.....
Спасибо....
-
1. Как один из вариантов
#!/usr/bin/perl -w
use strict;
my $file="doc.zip";
print "Content-type: application/octetstream\\n";
print "Content-length: ",-s $file,"\\n";
print "Content-disposition: inline; filename=\\"",$file,"\\"\\n\\n";
open(FILE, "$file");
binmode FILE;
binmode(STDOUT);
while(read(FILE, my $data, 1024)){print $data}
close FILE;
2. Перлом, по моему, никак
-
Спасибо большое....
Классно заработал такой вариант.....
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;
Теперь даже большие файлы уходят легко и просто с небольшой загрузкой системы, ведь скорость чтения с харада намного больше скорости передачи..... :)
:)
-
Karabas:
multipart\\/form-data\\;
Э... Грешным делом, всегда думал, что это дело для наоборот клиент->сервер.
-
Mog.
Mog.:
Э... Грешным делом, всегда думал, что это дело для наоборот клиент->сервер.
Э...э...э, а какая разница в каком направлении данные идут....? :(
-
Karabas! Э... может ты и прав :)
-
Karabas:
Как сделать что-б из этого-же скрипта , клиенту отправлялась сначала страничка HTML ( типа предупреждение о посылке файла), а потом сам файл.....
посылается страница в которой есть рефреш с путем к файлу.
-
NeoNox
Да.... наверное только так и получится.... :(
Придётся пол дописывать :) , чтоб делал рефреш сам на себя...
И при втором заходе уже слал файл ...
-
Karabas:
предупреждение о посылке файла
А какой смысл в этом?
-
Mog.
.... ну... незнаю.... симпатичней... :)