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

Функция ЗАГРУЗИТЬ_ФАЙЛ_СЕРВ

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

Функция ЗАГРУЗИТЬ_ФАЙЛ_СЕРВ (upload) позволяет загрузить файл из файловой системы клиента в файловую систему сервера. Функция работает только в контексте сетевой сессии соединения с базой данных.

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

Параметры

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

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

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

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

Пример

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

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

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

См. также: