У меня есть WCF-сервис, в который я пытаюсь загрузить изображение. У меня есть очень простой метод, который принимает поток как единственный параметр и определяется в контракте как:
[OperationContract]
[WebInvoke(UriTemplate = "ReviewImage", BodyStyle = WebMessageBodyStyle.Bare, Method = "POST")]
ReviewImage UploadImage(Stream data);
Я на самом деле использую этот сервис из флэш-памяти (что довольно несущественно), который выбирает файл из файловой системы и загружает его через URL-адрес службы.
Кажется, все работает, добавление точки останова в метод UploadImage прерывает, как и ожидалось.
Если я хотел сохранить этот файл обратно на диск, это просто случай чтения этого объекта Stream в объект FileStream, который создает файл где-нибудь? Немного как это ? Когда я действительно делаю это, файл не может быть открыт как изображение. Я уверен, что мне не хватает ключевого знания здесь. Мой поток содержит только байты изображения или больше?
РЕДАКТИРОВАТЬ ПОСЛЕ ОТВЕТА НА ОТВЕТ:
Проблема заключалась в том, что flash кодирует загружаемые изображения в виде данных multipart / form, которые добавляли дополнительные данные в тело сообщения. Я использую MultipartParser , найденный здесь , чтобы получить реальное изображение и записать на диск.