|
|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Artem Chuprina 2:5020/371.32 03 Aug 2001 13:37:07 To : Andrey Falko Subject : Re: DOWNLOAD -------------------------------------------------------------------------------- AF> Много раз видел, как на страницах для скачивания файла вместо конкретной AF> ссылки на файл укзывалась ссылка к примеру файла на perl с параметрами. А AF> при нажатии на нее начинало тащить нужный файл. Чисто эксперементальным AF> путем допер, что что это можно сдетать так: AF> print "Content-type: file/binary Во-первых, не file/binary, а application/octet-stream. RFC2046. AF> Content-Length: 53866\n\n"; # 53866 это к примеру размер AF> тянущегося файла. AF> А после этого пихать print-ом уже конкретный фалй, ну к примеру так: AF> @data=LoadFromBinFile("$FORM{'filename'}"); # LoadFromBinFile - моя AF> процедурка. AF> for ($i=0;$i<@data;$i++) { AF> print "$data[$i]"; AF> } AF> exit; AF> Все это красиво, но что еще надо добавить в заголовок, чтобы эксплорер AF> предлагал нужное мне имя для файла, а не имя pl-файла? Самый красивый способ - вызывать URL не как http://path/to/script.pl?filename=tratata, а как http://path/to/script.pl/tratata. В скрипте использовать соответственно не param('filename'), а $ENV{'PATH_INFO'}, предварительно откусив ведущий /, ну и проверив на прочую безопасность. -- Artem Chuprina <ran@ran.pp.ru> FIDO: 2:5020/371.32 --- slrn/0.9.7.0 (Linux) * Origin: AKA с подствольным плюсомётом (2:5020/371.32) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.cgi.perl/733026a778fab.html, оценка из 5, голосов 10
|