отправить изображение через веб-сервис - PullRequest
1 голос
/ 25 июля 2010

Я хочу написать одну программу Visual Studio 2008 (C # и ASP), которая имеет веб-приложение и приложение для Windows.

Я хочу получить изображения клиентов в веб-приложении (загрузить) и сохранить их в БД (mysql), а затем отправить эти изображения в приложение Windows через веб-сервис (поэтому я новая веб-служба, а не веб-сайт). Но у меня есть 2 проблемы:

  1. У меня есть 2 способа хранения изображений в MySQL, во-первых, у меня должно быть поле BLOB в БД - чтобы оно занимало больше места, - во-вторых, я должен сохранить только имя каждого изображения в БД (так что изображение в одной папке ) - таким образом, я не знаю, как получить изображение от клиентов и сохранить их в этой папке. который из? Или что другое?

  2. Как (код) я могу передать изображение через веб-сервис (байт [] или?).

Ответы [ 2 ]

5 голосов
/ 25 июля 2010

Один из вариантов передачи изображения с использованием WCF - преобразовать изображение в байтовый массив и передать его клиенту.Затем преобразуйте из byte [] в изображение на стороне клиента.

1 голос
/ 25 июля 2010

Вопрос 1:

Изображения или ссылки в базе данных debase устарели и все еще не разрешены.Был выпущен документ корпорации Майкрософт , который рекомендовал (для SQL Server 2008, поэтому ваш пробег может отличаться), что для изображений / двоичных файлов с объемом хранения 150 КБ является хорошим компромиссом.Если большинство изображений закончено, перейдите со ссылками, если они ниже, сохраните в БД.

Вопрос 2:

Веб-служба будет иметь объект контекста http, поэтому вы можете просто использовать Response.BinaryWrite метод, который принимает byte[].Вам все равно нужно будет написать правильные заголовки (для типа mime и т. Д.).

Для файла на диске самое простое, что нужно сделать, - это использовать метод Response.WriteFile, который принимает файл.Аргумент пути.

В любом случае вам потребуется перехватить это на клиенте и преобразовать обратно в изображение.

...