<адрес веб-сервиса>/PutBin?<параметры операции>
Операция PutBin предназначена для загрузки бинарных данных на сервер с помощью POST-запроса.
В параметрах операции передаётся моникёр и различные дополнительные параметры. В зависимости от того объекта, для которого выполняется операция, в качестве моникёра указывается моникёр соединения с репозиторием или моникёр какого-либо открытого экземпляра объекта. Необходимые моникёры возвращают различные операции Open*.
Параметр и его значение в строке адреса разделяются символом «=», различные параметры разделяются между собой символом «&».
Допустимые параметры операции PutBin:
Параметры | Описание |
mon | Моникёр объекта, для которого выполняется операция.
Допустимые виды моникёров:
|
format | Формат загружаемого файла. |
fileName | Наименование загружаемого файла. Если параметр не указан, то наименование будет получено из файла, передаваемого в теле запроса. |
data | Загружаемый в документ файл, представленный в бинарном виде. |
createNewDoc | Указание необходимости создать в репозитории новый документ и загрузить в него файл, переданный в теле запроса. Допустимое значение параметра - «1». Необходимым условием является передача в параметре mon моникёра папки репозитория. |
Важно. Наименования параметров являются регистрозависимыми.
Результатом операции будет моникёр загруженного объекта. Формат моникёра зависит от моникёра объекта, для которого выполнялась операция:
<моникёр соединения с репозиторием>!Bin! + <key>. Моникёр загруженного нового бинарного объекта.
<моникёр экспресс-отчета>!Load! + <key>. Моникёр загруженного экспресс-отчета.
<моникёр соединения с репозиторием>!$Sys! + <key>. Моникёр изменённого документа репозитория, в который был загружен новый файл.
<моникёр аналитической панели>!BinItem! + <key>. Моникёр нового или изменённого изображения в аналитической панели.
<моникёр соединения с репозиторием>! + <key>. Моникёр созданного документа.
Данные моникёры могут быть использованы в операции 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>
См. также: