Функция СКАЧАТЬ_ФАЙЛ_СЕРВ
Для работы функции требуется наличие соединения с базой данных.
Функция СКАЧАТЬ_ФАЙЛ_СЕРВ (download) позволяет скачать файл из файловой системы сервера в файловую систему клиента. Функция работает только в контексте сетевой сессии соединения с базой данных.
ФУНКЦИЯ ЦЕЛОЕ: СКАЧАТЬ_ФАЙЛ_СЕРВ(СТРОКА: сервер_файл, клиент_дир, клиент_файл = ""; ПРОГРЕСС_ФАЙЛА: прогресс = НОЛЬ)
Параметры
- сервер_файл
- Путь к файлу в файловой системе сервера. Относительный путь откладывается от папки "песочницы" пользователя на стороне сервера.
- клиент_дир
- Путь к целевой папке в файловой системе клиента. Относительный путь откладывается от персональной рабочей папки клиента..
- клиент_файл
- Необязательный параметр. Альтернативное имя файла на стороне клиента. Если параметр не указан, то файл получает такое же имя файла и расширение, как на сервере.
- прогресс
- Необязательный параметр. Ссылка на функцию, которая вызывается в ходе передачи данных с сервера и позволяет отменить копирование файла.
Возвращаемое значение
0 | – скачивание выполнено успешно. |
-1 | – файл на стороне сервера не найден. |
-3 | – передача файла была отменена. |
-4 | – ошибка чтения файла на стороне сервера. |
-5 | – ошибка записи файла на стороне клиента. |
-7 | – чтение из указанного места на сервере недоступно из-за политики безопасности сервера. |
-8 | – функция поддерживается только в сетевом режиме. |
-9 | – ошибка передачи данных по сети. |
Текстовое описание ошибки можно получить вызовом функции ПОСЛ_НФ_ОШИБКА.
Пример
Пример подразумевает, что на сервере разрешено чтение вне песочницы из папки Update в общей рабочей папке.
ФУНКЦИЯ ЛОГИКА: ПрогрессСкачивания(ЧИСЛО: байты, всего) ОТЛАДКА("Скачано байт: " + СТР(байты) + " из " + СТР(всего)) РЕЗУЛЬТАТ = ДА КОНЕЦ_ФУНКЦИИ ВЫЧИСЛИТЬ ПЕРЕМ СТРОКА: корень ЕСЛИ АТРИБУТ_ОКРУЖЕНИЯ_СЕРВ("common_root_path", корень) ТО ПЕРЕМ рез = СКАЧАТЬ_ФАЙЛ_СЕРВ(ПУТЬ_СОЕДИНИТЬ(корень, "Update/ibw10-applications.exe"), "Update", "", {ПрогрессСкачивания}) ОТЛАДКА(рез) ЕСЛИ рез <> 0 ТО ОТЛАДКА(ПОСЛ_НФ_ОШИБКА) КОНЕЦ_ЕСЛИ КОНЕЦ_ЕСЛИ КОНЕЦ