Добавление файла на деталь "Файлы и ссылки" с помощью веб-сервиса
Добрый день!
В рамках интеграции сайта клиента с 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)