回答
所以,在这里去...
创建您的服务合同,并同意对唯一参数流的操作,以WebInvoke装饰如下
[ServiceContract]
public interface IService1 {
[OperationContract]
[WebInvoke(
Method = "POST",
BodyStyle = WebMessageBodyStyle.Bare,
UriTemplate = "/Upload")]
void Upload(Stream data);
}
创建类...
public class Service1 : IService1 {
public void Upload(Stream data) {
// Get header info from WebOperationContext.Current.IncomingRequest.Headers
// open and decode the multipart data, save to the desired place
}
而配置,接受流数据,并在对System.Web最大尺寸
<system.serviceModel>
<bindings>
<webHttpBinding>
<binding name="WebConfiguration"
maxBufferSize="65536"
maxReceivedMessageSize="2000000000"
transferMode="Streamed">
</binding>
</webHttpBinding>
</bindings>
<behaviors>
<endpointBehaviors>
<behavior name="WebBehavior">
<webHttp />
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="Sandbox.WCFUpload.Web.Service1Behavior">
<serviceMetadata httpGetEnabled="true" httpGetUrl="" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service name="Sandbox.WCFUpload.Web.Service1" behaviorConfiguration="Sandbox.WCFUpload.Web.Service1Behavior">
<endpoint
address=""
binding="webHttpBinding"
behaviorConfiguration="WebBehavior"
bindingConfiguration="WebConfiguration"
contract="Sandbox.WCFUpload.Web.IService1" />
</service>
</services>
</system.serviceModel>
还可以提高数据允许的System.Web量
<system.web>
<otherStuff>...</otherStuff>
<httpRuntime maxRequestLength="2000000"/>
</system.web>
这仅仅是基础,但允许添加进展方法来显示ajax进度条,并且您可能想要添加一些安全性。
我并不确切地知道你要在这里完成的,但没有内置的“经典”基于SOAP的WCF支持捕获和处理表单提交的数据。你必须自己做。另一方面,如果你正在谈论基于REST的WCF和webHttpBinding,你当然可以有一个服务方法,用[WebInvoke()]属性来装饰,这个方法将用一个HTTP POST方法调用。
[WebInvoke(Method="POST", UriTemplate="....")]
public string PostHandler(int value)
URI模板将定义要在HTTP POST应该去的地方使用的URI。你必须将它与你的ASP.NET表单(或者你正在使用的任何实际发布的内容)联系起来。
有关REST风格WCF的详细介绍,请查看WCF REST入门工具包上的Aaron Skonnard的screen cast series以及如何使用它。
马克
嗨马克, 我想有一个宁静的wcf服务可以接受来自HTML表单的发布数据,该表单中包含[input type = file /]。 我已经能够发布没有文件的表单。 我不希望客户端应用只是浏览器,所以我不能将文件转换为字节流,它将是一个multipart/form-data http post – 2009-08-31 10:41:42
- 1. WCF Rest服务接受Json数据
- 2. 如何编写Wcf服务以接受xml数据?
- 3. 配置WCF服务以接受不合格的参数
- 4. WCF多部分/表格数据与多个文件
- 5. 将表格多维数据集部署到Azure分析服务
- 6. WCF服务器接受TLS 1.0连接
- 7. 使一个WCF服务接受来自jQuery.AJAX的JSON数据()
- 8. WCF/WCF数据服务/ WCF RIA服务
- 9. Django Rest框架拒绝接受多部分表单数据
- 10. Python标准库以POST多部分/表格数据编码数据
- 11. 默认启用WCF数据服务来接受/返回JSON
- 12. WCF服务,WCF RIA服务和WCF数据服务的区别
- 13. 部署多个WCF服务?
- 14. WCF数据服务(OData的)部署5.1
- 15. WCF服务接受GZip消息
- 16. WCF服务接受任何旧证书
- 17. svcutil不接受DataTable - WCF服务
- 18. WCF REST服务的JSON数据后
- 19. WCF数据服务:多对多查询
- 20. 平WCF数据服务或WCF服务
- 21. WCF数据服务与WCF RIA服务
- 22. WCF服务中的数据库连接
- 23. WCF数据服务的连接查询
- 24. 如何阅读WCF服务中的多部分/表单数据后期流没有依赖关系
- 25. 使用pojo的Resteasy多部分/表单数据编码
- 26. WCF数据服务部署问题
- 27. WCF数据服务 - JSON响应有额外的“结果”部分
- 28. WCF数据服务
- 29. 如何从Web服务器部分下载Base64数据并部分从编码数据中解码?
- 30. WCF数据服务分页行为
看到我的答案在这里:http://stackoverflow.com/a/21689347/67824 – 2014-02-10 22:39:27
这个链接对我来说,我希望你会从中得到一些想法。 http://stackoverflow.com/questions/7460088/reading-file-input-from-a-multipart-form-data-post/14514351#14514351 – 2014-02-17 14:39:16