jdiaz
jdiaz

Reputation: 7472

How to upload a file to a WCF Service?

I've build a WCF Service to accept a file and write it to disk. The front-end consists of a page with SWFUpload which is handling the upload on the client side. Apparently, SWFUpload posts the data with a Content Type of: multipart/form-data.

I would think this ok but on the Service side I get an error. The error is "ProtocolException" expecting text/xml. I've tried different message encodings in the bindings but nothing seems to work.

How can I get this file uploaded using multipart/form-data?

Upvotes: 20

Views: 51048

Answers (4)

majed
majed

Reputation: 11

It might be that your WCF service targets .NET Framework 3.5 and your IIS is running on .NET Framework 4.0. In this case (framework mismatch) you need to modify your service.

Upvotes: 1

Philippe
Philippe

Reputation: 4051

What you want to use is probably MTOM, if you want it to be standard. Using this, you can have MIME multiparts messages.

You then have to read the file as a stream and stuff it into one of the parameters of the request.

Upvotes: 2

aku
aku

Reputation: 123966

@jdiaz,

@JasonS is right, to upload file you need to transfer it as a byte stream. You need to use WCF streaming. For example on how to upload file via WCF see an article from http://kjellsj.blogspot.com

Upvotes: 9

JasonS
JasonS

Reputation: 23868

I believe you are going to have to tranfer the file as a byte array to WCF. You will need to handle the post from SWFUpload and convert to a byte array before sending to your service.

Upvotes: 0

Related Questions