我已经构建了一个 WCF 服务来接受文件并将其写入磁盘。前端包含一个带有 SWFUpload 的页面,该页面在客户端处理上传。显然,SWFUpload 使用以下内容类型发布数据:multipart/form-data。
我认为这没问题,但在服务方面我得到了一个错误。错误是“ProtocolException”,需要文本/xml。我在绑定中尝试了不同的消息编码,但似乎没有任何效果。
如何使用 multipart/form-data 上传此文件?
我已经构建了一个 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 的帖子并转换为字节数组。