Quantcast
Viewing all articles
Browse latest Browse all 3663

Uploading file from Flex to WCF REST Stream issues (how to decode multipart form post in REST WS)

The system is a Flex application communicating with a WCF REST web service. I am trying to upload a file from the Flex application to the server and am running into some issues I'm hoping someone here will be able to help out with.I'm using a FileReference in the Flex app to browse and upload the file as defined here:

http://blog.flexexamples.com/2007/09/21/uploading-files-in-flex-using-the-filereference-class/

I am then receiving the file as a Stream (shows as System.ServiceModel.Dispatcher.StreamFormatter.MessageBodyStream in the debugger) in the WCF REST web service (using project type of WCF 4 REST Service)

[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);    }}

Note: CopyStream method used from this post: How do I save a stream to a file in C#?

The file saves without any issues. The issue I have is that the file contains more information than i would like. Here are the contents of the saved file (where the source file only contained "THIS IS THE CONTENT OF THE FILE"):

------------ae0ae0Ef1ae0Ef1ae0gL6gL6Ij5cH2Content-Disposition: form-data; name="Filename"testfile.txt------------ae0ae0Ef1ae0Ef1ae0gL6gL6Ij5cH2Content-Disposition: form-data; name="Filedata"; filename="testfile.txt"Content-Type: application/octet-streamTHIS IS THE CONTENT OF THE FILE------------ae0ae0Ef1ae0Ef1ae0gL6gL6Ij5cH2Content-Disposition: form-data; name="Upload"Submit Query------------ae0ae0Ef1ae0Ef1ae0gL6gL6Ij5cH2--

The contents look exactly like they are described in the Adobe documentation:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/FileReference.html

Are there any facilities in C# to get the file contents from the Stream?

EDIT (3/24 8:15 pm): What the Flex app is sending is a Multipart form POST. How can I decode the multipart body data as represented by the Stream parameter and strip out the pieces of the multipart body?

Thanks in advance.


Viewing all articles
Browse latest Browse all 3663

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>