回答
所以,在這裏去...
創建您的服務合同,並同意對唯一參數流的操作,以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. 將表格多維數據集部署到Azure分析服務
- 3. 使一個WCF服務接受來自jQuery.AJAX的JSON數據()
- 4. Django Rest框架拒絕接受多部分表單數據
- 5. WCF/WCF數據服務/ WCF RIA服務
- 6. Python標準庫以POST多部分/表格數據編碼數據
- 7. 默認啓用WCF數據服務來接受/返回JSON
- 8. WCF數據服務(OData的)部署5.1
- 9. svcutil不接受DataTable - WCF服務
- 10. WCF服務,WCF RIA服務和WCF數據服務的區別
- 11. WCF REST服務的JSON數據後
- 12. WCF數據服務:多對多查詢
- 13. 平WCF數據服務或WCF服務
- 14. WCF數據服務的連接查詢
- 15. 使用pojo的Resteasy多部分/表單數據編碼
- 16. WCF數據服務 - JSON響應有額外的「結果」部分
- 17. WCF數據服務
- 18. Android RestTemplate後多部分/表格數據與utf-8
- 19. WCF數據服務分頁行爲
- 20. ColdFusion/Linux多部分/表格數據編碼文件上傳問題
- 21. 安裝海報(流式HTTP上傳和多部分/表格數據編碼)
- 22. 碼頭8多部分/表格數據請求
- 23. 作爲ASMX公開的WCF服務將不接受參數
- 24. 閱讀多部分/表格數據,而不接觸磁盤
- 25. ASP.NET與WCF數據服務或WCF數據服務
- 26. 如何獲得內部聯接在WCF數據服務
- 27. JSONPBehaviour和WCF服務的多種格式
- 28. 以編程方式連接並刷新SQL服務器分析服務上的表格數據模型
- 29. 編碼表格數據
- 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