Добавление файла на деталь "Файлы и ссылки" с помощью веб-сервиса
Добрый день!
В рамках интеграции сайта клиента с bpm`online появилась необходимость добавлять с сайта файлы на деталь "Файлы и ссылки" обращения. Для этого был написал веб-сервис для добавления файла, так выглядит метод добавления:
[OperationContract]
[WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped,
ResponseFormat = WebMessageFormat.Json)]
public string InserCaseFile(CaseFileData data)
{
try
{
var appConnection = HttpContext.Current.Application["AppConnection"] as AppConnection;
var userConnection = HttpContext.Current.Session["UserConnection"] as UserConnection;
var caseFile = new Terrasoft.Configuration.CaseFile(userConnection);
// byte[] bytes = Convert.FromBase64String(data.File);
ASCIIEncoding ascii = new ASCIIEncoding();
var t = ascii.GetBytes(data.File);
Stream stream = new MemoryStream(t);
var id = Guid.NewGuid();
caseFile.SetDefColumnValues();
caseFile.Id = id;
caseFile.Name = data.Name;
caseFile.Size = (int)stream.Length;
caseFile.SetStreamValue("Data", stream);
caseFile.CaseId = new Guid(data.CaseId);
caseFile.Save();
return "Ok";
}
catch(Exception er)
{
return er.ToString();
}
}Для тестирования с помощью SelectQuery веб-службы DataService был получен уже существующий в bpm файл *.txt, при получении значения из колонки Data в json возвращалась строка в кодировке 7-bit ASCII.
При попытке записи этого значения с помощью описанного выше метода в таблицу CaseFile, на детали появляется файл, но при нажатии на него страница перезагружается и скачивания или открытия не происходит.
Скажите пожалуйста, в каком виде нужно передавать файл методу, чтобы после добавления в базу он отображался на детали и его можно было просматривать.
Нравится
Здравствуйте,
Посмотрите, как передается файл в ConfigurationFileApi, метод upload.
И принимается в схеме FileApiService, метод public string Upload(Stream fileContent)
я думаю, что проблема в том, что не указан тип файла... из-за этого не генерируется правильная ссылка на скачивание файла
Добрый день, коллеги. Проблема была в TypeId, как и написал Максим. Спасибо.
я имею в виду поле TypeId='529BC2F8-0EE0-DF11-971B-001D60E938C6' (это тип File из таблицы FileType)