如何将文件上传到WCF服务?

如何将文件上传到WCF服务?

How to upload a file to a WCF Service?

我已经建立了一个WCF服务来接受文件并将其写入磁盘。 前端由一个带有SWFUpload的页面组成,该页面在客户端处理上传。 显然,SWFUpload发布的数据的内容类型为:multipart / form-data。

我认为可以,但是在服务端却出现错误。 错误是" ProtocolException",需要文本/ xml。 我在绑定中尝试了不同的消息编码,但似乎没有任何效果。

如何使用multipart / form-data上传此文件?


@jdiaz,

@JasonS是正确的,要上传文件,您需要将其作为字节流传输。 您需要使用WCF流。 例如,有关如何通过WCF上传文件的信息,请参见http://kjellsj.blogspot.com上的文章。


如果您希望它是标准的,则可能要使用MTOM。 使用此功能,您可以拥有MIME多部分消息。

然后,您必须将文件作为流读取,并将其填充到请求的参数之一中。


WCF服务可能针对.NET Framework 3.5,而IIS在.NET Framework 4.0上运行。 在这种情况下(框架不匹配),您需要修改服务。


我相信您将不得不将文件作为字节数组传输到WCF。 您将需要处理来自SWFUpload的帖子,并将其转换为字节数组,然后再发送给您的服务。


推荐阅读