Подскажите сабж, пожалуйста.
Вот есть картинка в виде byte[] - как её зааплоадить через OData в Contact.ContactPhoto?
Спасибо.
Нравится
Здравствуйте, Леонид!
Посмотрите следующие статьи по теме:
http://stackoverflow.com/questions/7003953/saving-a-generated-png-file-…
http://stackoverflow.com/questions/7324190/how-to-store-images-to-a-var…
Товарищи, а удалось ли кому это сделать?
За пример был бы очень благодарен :cool:
Коллеги, сделал пример работы с потоками через oData с
использованием WCF-клиента. Привожу код функции консольного приложения,
которое пишет файл из базы потоком в файл на диске и, соответственно,
файл на диске пишет в базу. Сначала, естественно, сгенерированы классы клиента
как это описано в SDK.
Пример только для показа технологии, не несет подробностей и особого смысла, поэтому
не судите строго.
Тот же принцип можно использовать и при передаче фотографий, только таблицы и поля будут другими.
static void Main(string[] args) { // URI сервиса oData. Uri svcUri = new Uri("http://localhost/0/ServiceModel/EntityDataService.svc/"); // Создаем контекст приложения BPMonline. BPMonline context = new BPMonline(svcUri); // Указываем имя и пароль пользователя BPMonline. context.Credentials = new NetworkCredential("Login", "Password"); //=============== Чтение потоковых данных из базы в файл // Читаем первую запись из коллекции файлов BpmonlineService.File file = (from f in context.FileCollection select f).First(); // Тип передаваемого контента DataServiceRequestArgs _args = new DataServiceRequestArgs(); _args.ContentType = "application/octet-stream"; // Получаем поток с двоичными данными из поля Data using (Stream rs = context.GetReadStream(file, "Data", _args).Stream) { // Создаем файл в текущем каталоге using (Stream fs = new FileStream(file.Name, FileMode.Create)) { // Пишем поток в файл rs.CopyTo(fs); } } //=============== Запись файла в базу данных // Открываем файл, который будем записывать using (FileStream fs = new FileStream("Data.xls", FileMode.Open)) { // Создаем новый файл и инициализируем свойства. BpmonlineService.File NewFile = new BpmonlineService.File() { Id = Guid.NewGuid(), Name = fs.Name }; // Добавляем созданный файл в коллекцию файлов контекста сервиса. context.AddToFileCollection(NewFile); // Сохраняем изменения данных в BPMonline context.SaveChanges(); // Пишем поток в поле Data context.SetSaveStream(NewFile, "Data", fs, true, _args); // Сохраняем изменения данных в BPMonline context.SaveChanges(); } }