Я использую 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);
}
}
Файл сохраняется без каких-либо проблем. У меня проблема в том, что файл содержит больше информации, чем мне хотелось бы. Вот содержимое сохраненного файла (где исходный файл содержал только «ЭТО СОДЕРЖАНИЕ ФАЙЛА»):
Код: Выделить всё
------------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--
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