Руководство разработчика

Функция СКАЧАТЬ_ФАЙЛ_СЕРВ

Для работы функции требуется наличие соединения с базой данных.

Функция СКАЧАТЬ_ФАЙЛ_СЕРВ (download) позволяет скачать файл из файловой системы сервера в файловую систему клиента. Функция работает только в контексте сетевой сессии соединения с базой данных.

ФУНКЦИЯ ЦЕЛОЕ: СКАЧАТЬ_ФАЙЛ_СЕРВ(СТРОКА: сервер_файл, клиент_дир, клиент_файл = "";
                                 ПРОГРЕСС_ФАЙЛА: прогресс = НОЛЬ)

Параметры

сервер_файл
Путь к файлу в файловой системе сервера. Относительный путь откладывается от папки "песочницы" пользователя на стороне сервера.
клиент_дир
Путь к целевой папке в файловой системе клиента. Относительный путь откладывается от персональной рабочей папки клиента..
клиент_файл
Необязательный параметр. Альтернативное имя файла на стороне клиента. Если параметр не указан, то файл получает такое же имя файла и расширение, как на сервере.
прогресс
Необязательный параметр. Ссылка на функцию, которая вызывается в ходе передачи данных с сервера и позволяет отменить копирование файла.

Возвращаемое значение

0– скачивание выполнено успешно.
-1– файл на стороне сервера не найден.
-3– передача файла была отменена.
-4– ошибка чтения файла на стороне сервера.
-5– ошибка записи файла на стороне клиента.
-7– чтение из указанного места на сервере недоступно из-за политики безопасности сервера.
-8– функция поддерживается только в сетевом режиме.
-9– ошибка передачи данных по сети.

Текстовое описание ошибки можно получить вызовом функции ПОСЛ_НФ_ОШИБКА.

Пример

Пример подразумевает, что на сервере разрешено чтение вне песочницы из папки Update в общей рабочей папке.

ФУНКЦИЯ ЛОГИКА: ПрогрессСкачивания(ЧИСЛО: байты, всего)
  ОТЛАДКА("Скачано байт: " + СТР(байты) + " из " + СТР(всего))
  РЕЗУЛЬТАТ = ДА
КОНЕЦ_ФУНКЦИИ

ВЫЧИСЛИТЬ
  ПЕРЕМ СТРОКА: корень
  ЕСЛИ АТРИБУТ_ОКРУЖЕНИЯ_СЕРВ("common_root_path", корень) ТО
    ПЕРЕМ рез = СКАЧАТЬ_ФАЙЛ_СЕРВ(ПУТЬ_СОЕДИНИТЬ(корень, "Update/ibw10-applications.exe"),
                                  "Update",
                                  "",
                                  {ПрогрессСкачивания})
    ОТЛАДКА(рез)
    ЕСЛИ рез <> 0 ТО
      ОТЛАДКА(ПОСЛ_НФ_ОШИБКА)
    КОНЕЦ_ЕСЛИ
  КОНЕЦ_ЕСЛИ  
КОНЕЦ

См. также: