PutBin

Синтаксис

<адрес веб-сервиса>/PutBin?<параметры операции>

Описание

Операция PutBin предназначена для загрузки бинарных данных на сервер с помощью POST-запроса.

Комментарии

В параметрах операции передаётся моникёр и различные дополнительные параметры. В зависимости от того объекта, для которого выполняется операция, в качестве моникёра указывается моникёр соединения с репозиторием или моникёр какого-либо открытого экземпляра объекта. Необходимые моникёры возвращают различные операции Open*.

Параметр и его значение в строке адреса разделяются символом «=», различные параметры разделяются между собой символом «&».

Допустимые параметры операции PutBin:

Параметры Описание
mon Моникёр объекта, для которого выполняется операция.
Допустимые виды моникёров:
  • <моникёр соединения с репозиторием>!Bin!$New. Для загрузки на сервер нового бинарного объекта, который передаётся в теле запроса. В дальнейшем получить загруженный бинарный объект с сервера можно с помощью операции GetBin или GetBinary.
  • <моникёр экспресс-отчета>!Load!Express. Для загрузки в экспресс-отчет настроек и данных, сохраненных в файле в формате PPEXPRESS (*.ppexpress). Содержимое файла передаётся в теле запроса.
  • <моникёр экспресс-отчета>!Load!Cube. Для загрузки в экспресс-отчет данных, сохранённых в файле в формате PPCUBE (*.ppcube). Содержимое файла передаётся в теле запроса.
  • <моникёр соединения с репозиторием>!$Sys! + <идентификатор_документа_репозитория>. Для загрузки в документ репозитория с указанным идентификатором содержимого файла, передаваемого в теле запроса.
  • <моникёр аналитической панели>!BinItem!New. Для загрузки в аналитическую панель нового изображения. Изображение передаётся в теле запроса. Для загруженного изображения будут сгенерированы идентификатор и ключ.
  • <моникёр аналитической панели>!BinItem! + <id/key>. Для загрузки в аналитическую панель изображения и присвоение ему указанного идентификатора или ключа. Если элемент с указанными идентификатором/ключом уже существует, то он будет заменён. Изображение передаётся в теле запроса.
  • <моникёр соединения с репозиторием>!<id/key папки>. Для создания в указанной папке нового документа. Содержимое файла, который будет сохранён в документе, передаётся в теле запроса. Используется вместе с параметром createNewDoc.
format Формат загружаемого файла.
fileName Наименование загружаемого файла. Если параметр не указан, то наименование будет получено из файла, передаваемого в теле запроса.
data Загружаемый в документ файл, представленный в бинарном виде.
createNewDoc Указание необходимости создать в репозитории новый документ и загрузить в него файл, переданный в теле запроса. Допустимое значение параметра - «1». Необходимым условием является передача в параметре mon моникёра папки репозитория.

Важно. Наименования параметров являются регистрозависимыми.

Результатом операции будет моникёр загруженного объекта. Формат моникёра зависит от моникёра объекта, для которого выполнялась операция:

Данные моникёры могут быть использованы в операции GetBin.

Пример

Ниже приведён пример кода html-страницы, которая используется для отправки данных на сервер с помощью операции PutBin. В качестве значения отправляется форма, реализованная на html-странице. Отправка осуществляется при нажатии на гиперссылку.

Для уменьшения примера из кода исключен скрипт функции PostRequest, которая используется для выполнения операций в JSON формате. Код данной функции можно посмотреть в статье «Подключение к репозиторию».

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>Использование операции PutBin</title>
</head>
<body>
    <script type="text/javascript">
        var svc = "http://localhost:9090/axis2/services/PP.SOM.Som";
        function getFormElement(id) {
            res = document.getElementById(id);
            return res;
        }
        function sendForm(form, url) {
            sta = getFormElement('status');
            sta.innerHTML = '';
            xhr = new XMLHttpRequest(),
            xhr.open('POST', url, false);
            data = new FormData(form);
            xhr.send(data);
            if (xhr.status == 200) {
                sta.innerHTML = "Ответ:<p>" + xhr.responseText + "<p>";
            } else {
                sta.innerHTML = "Ошибка выполнения запроса:<p>" + xhr.responseText +  "<p>";
            }
        }
        // Подключение к репозиторию и отправка запроса на выполнение операции PutBin
        function PutBin(form) {
            OpenMetabase = { "OpenMetabase": { "tDef": { "id": "Warehouse" }, "tCreds": { "user": { "id": "User" }, "pass": "Password" } } }
            //Подключение к репозиторию
            OpenMetabaseResult = PostRequest(svc, OpenMetabase);
            //Отправка данных на сервер
            return sendForm(form, svc + "/PutBin?mon=" + OpenMetabaseResult.OpenMetabaseResult.id + "!Bin!$New");
        }
        /*
            Скрипт для PostRequest
        */
    </script>
    <!--Форма, данные которой будут отправляться на сервер-->
    <form id="fileForm" action="" method="" enctype="multipart/form-data" onsubmit="PutBin(this)">
        <div>
            <input type="text" name="name" id="name" />
            <input type="file" name="file" id="file" />
        </div>
    </form>
    <!--Гиперссылка для отправки данных-->
    <div>
        <a href="javascript:PutBin(getFormElement('fileForm'))">PutBin</a>
    </div>
    <!--Поле для формирования статуса выполнения операции-->
    <div id="status"></div>
</body>
</html>

См. также:

Дополнительные операции