Проблемы с загрузкой файла из Flex в WCF REST Stream (как декодировать сообщение многочастной формы в REST WS)C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Проблемы с загрузкой файла из Flex в WCF REST Stream (как декодировать сообщение многочастной формы в REST WS)

Сообщение Anonymous »

Система представляет собой приложение Flex, взаимодействующее с веб-службой REST WCF. Я пытаюсь загрузить файл из приложения Flex на сервер и столкнулся с некоторыми проблемами. Надеюсь, кто-нибудь здесь сможет мне помочь.
Я использую FileReference в приложении Flex для просмотра и загрузите файл, как определено здесь:
http://blog.flexexamples.com/2007/09/21 ... ence-class /
Затем я получаю файл как поток (отображается как System.ServiceModel.Dispatcher.StreamFormatter.MessageBodyStream в отладчике) в веб-службе WCF REST (с использованием типа проекта службы WCF 4 REST)

Код: Выделить всё

[WebInvoke(Method = "POST", UriTemplate = "_test/upload")]
public void UploadImage(Stream data)
{
// TODO: just hardcode filename for now
var filepath = HttpContext.Current.Server.MapPath(@"~\_test\testfile.txt");
using (Stream file = File.OpenWrite(filepath))
{
CopyStream(data, file);
}
}
private static void CopyStream(Stream input, Stream output)
{
var buffer = new byte[8 * 1024];
int len;
while ((len = input.Read(buffer, 0, buffer.Length)) > 0)
{
output.Write(buffer, 0, len);
}
}
Примечание. Метод CopyStream, использованный в этом сообщении: Как сохранить поток в файл на C#?
Файл сохраняется без каких-либо проблем. У меня проблема в том, что файл содержит больше информации, чем мне хотелось бы. Вот содержимое сохраненного файла (где исходный файл содержал только «ЭТО СОДЕРЖАНИЕ ФАЙЛА»):

Код: Выделить всё

------------ae0ae0Ef1ae0Ef1ae0gL6gL6Ij5cH2
Content-Disposition: form-data; name="Filename"

testfile.txt
------------ae0ae0Ef1ae0Ef1ae0gL6gL6Ij5cH2
Content-Disposition: form-data; name="Filedata"; filename="testfile.txt"
Content-Type: application/octet-stream

THIS IS THE CONTENT OF THE FILE
------------ae0ae0Ef1ae0Ef1ae0gL6gL6Ij5cH2
Content-Disposition: form-data; name="Upload"

Submit Query
------------ae0ae0Ef1ae0Ef1ae0gL6gL6Ij5cH2--
Содержимое выглядит точно так, как описано в документации Adobe:
http://help.adobe.com/en_US/FlashPlatfo ... t/3/flash/ net/FileReference.html
Есть ли в C# какие-либо средства для получения содержимого файла из потока?
EDIT (3/24) 8:15 pm): Приложение Flex отправляет POST-составную форму. Как я могу декодировать данные составного тела, представленные параметром Stream, и выделить части составного тела?
Заранее спасибо.

Подробнее здесь: https://stackoverflow.com/questions/542 ... ipart-form
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»