Forum Webscript.Ru

Программирование => Perl => Тема начата: Inecs от 22 Августа 2005, 15:23:32

Название: Скачивание файлов. Пища для ума.
Отправлено: Inecs от 22 Августа 2005, 15:23:32
Господа. Есть пища для ума.
Задачка состоит в следующем.
Есть некий perl скрипт на локальном компьютере.
Есть perl скрипт на сервере.
По запросу серверный скрипт генерит архив, и кладёт в какую-либо папку. Вопрос вот в чём, как этот архив скачать скриптом на локальный компьютер. Только не просто скачать, а скачать в определённую директорию на локальном компьютере и чтобы при этом, пользователь не нажимал никаких кнопок о том что сохранить и так далее.
Можно ли это осуществить?
А то уж очень интересная задумка появилась.
Название: Скачивание файлов. Пища для ума.
Отправлено: Ivan Kolesnikov от 22 Августа 2005, 15:28:54
Осуществить можно все. :) Что за система? Можно конечно чисто используя Perl, но проще и быстрее воспользоваться скажем ftp или если это *nix, то rsh, или ssh.
Название: Скачивание файлов. Пища для ума.
Отправлено: Inecs от 22 Августа 2005, 15:37:09
На стороне сервера - Unix/Linux
У клиента Windows.
Мне нужно, чтобы пользователь не утруждал себя записыванием файла в определённые директории. Вот и встаёт вопрос, как это сделать. И желательно средствами perl. И если можно, то обойтись без фтп. А скачивать с http.
Название: Скачивание файлов. Пища для ума.
Отправлено: NeoNox от 22 Августа 2005, 15:51:45
Нельзя. Из соображений безопасности.
Название: Скачивание файлов. Пища для ума.
Отправлено: Ivan Kolesnikov от 22 Августа 2005, 15:59:11
Я бы сделал следующим образом: для начала придумал формат файла получив который я смогу на клиенте определиться с местом куда этот файл положить.
Скажем первая строка полный путь к файлу, начиная со следующей содержимое.

Далее написал бы скрипт CGI для сервера, который бы принимал параметры переданные ему, обрабатывал их и возвращал следующее содержимое:

Content-Type: text/html; charset: windows-1251;

file-name: "путь куда сохранить"
"данные"


На клиенте работал бы следующий Perl скрипт:

use LWP::Simple;
my $res = get("server_script.pl?param1=value1¶m2=value2...");
"разбор $res"
известно имя файла и содержимое, осталось сохранить

Это так вариант на скорую руку нужно еще все хорошо обдумать :)
Название: Скачивание файлов. Пища для ума.
Отправлено: Ivan Kolesnikov от 22 Августа 2005, 16:00:01
Только мне не понятно, а кто будет на клиенте скрипт запускать?
Название: Скачивание файлов. Пища для ума.
Отправлено: NeoNox от 22 Августа 2005, 16:03:00
Ага, предварительно на клиенте установить perl и необходимые модули.
Название: Скачивание файлов. Пища для ума.
Отправлено: Inecs от 22 Августа 2005, 16:15:35
Ну начнём с того, что на клиенте можно откомпилить перл скрипт и запускать его где угодно.
Скрипт запускает сам клиент.
Название: Скачивание файлов. Пища для ума.
Отправлено: NeoNox от 22 Августа 2005, 16:49:48
Размер скрипта представляете?
Если да, то вперед - Ivan Kolesnikov подсказал.