2
A
回答
4
假設您在客戶端上談到:
一種方式來做到這一點是創建一個從HttpContent派生的FileContent類。在覆蓋中,當HTTPClient準備好接收流時,您將獲得NetworkStream。
如果您詢問服務器端,那麼您可以簡單地獲取HTTPRequestMessage並訪問httpRequestMessage.Content.ContentReadStream屬性。
更新
默認情況下,WCF傳輸被限制在65K發送消息。如果你想發送更大的文件,你需要啓用「流式傳輸模式」,你需要增加MaxReceivedMessageSize的大小,這就是爲了防止有人通過上傳大量文件來殺死你的服務器。
所以,你可以使用綁定配置來做到這一點,或者你可以在代碼中做到這一點。下面是做到這一點的代碼的一種方式:
var endpoint = ((HttpEndpoint)host.Description.Endpoints[0]); //Assuming one endpoint
endpoint.TransferMode = TransferMode.Streamed;
endpoint.MaxReceivedMessageSize = 1024 * 1024 * 10; // Allow files up to 10MB
2
這個答案僅設計與Web API預覽添加一些細節6.
TransferMode
和MaxRecievedMessageSize
是新通過WebApiConfigurationClass
暴露。
var builder = new WebApiConfiguration();
builder.TransferMode = TransferMode.Streamed;
builder.MaxReceivedMessageSize = 1024 * 1024 * 10;
var serviceRoute = new WebApiRoute(route, new WebAPIServiceHostFactory() { Configuration = builder }, typeof(MyService));
我喜歡它!
相關問題
- 1. Java將文件上傳到api端點
- 2. Wcf Web API沙箱端點處理
- 3. Web API上傳文件
- 4. WCF上傳文件
- 5. YouTube上傳API端點
- 6. WCF上傳文件 - 點子和示例
- 7. 將.NET應用程序中的文件上傳到Web API POST端點
- 8. WCF Web服務MSMQ端點
- 9. 上傳文件wcf
- 10. WCF REST上傳文件
- 11. 使用Web API上傳大文件
- 12. ASP.NET Web api文件上傳和IIS
- 13. Angular 2與Web API文件上傳
- 14. Web API文件上傳問題
- 15. 上傳文件MVC 4 Web API .NET 4
- 16. asp.net Web API文件上傳fileData空
- 17. WCF REST文件上傳
- 18. PhoneGap文件上傳到WCF
- 19. Silverlight Sharepoint客戶端API。上傳文件
- 20. WCF/C#上傳文件
- 21. 從桌面應用端到端教程上傳WCF文件?
- 22. 通過Web上傳文件Api第二次上傳失敗
- 23. 使用WCF上傳文件
- 24. 上傳文件:使用Java虛擬WCF Web服務
- 25. 創建一個WCF Web Api客戶端
- 26. 文件API上傳文件
- 27. WCF Web API如何向每個端點添加參數
- 28. WCF文件上傳大文件
- 29. REST API文件上傳
- 30. 將文件上傳到WCF 3.5服務
我不認爲WCF Web API Preview 4支持接受multipart/form-data作爲內容類型。我無法實現文件上傳的端點。希望這將在下次預覽中得到解決。 – aumanets 2011-06-14 19:42:56
您不需要使用multipart/form-data作爲內容類型。你可以發送內容作爲application/octet-stream – 2011-06-14 19:49:19
我試過使用application/octet-stream並且沒有成功。現在我不確定這個問題是由內容類型引起的。當我發出請求時,它沒有達到配置的終點,並且不會引發任何異常。也許這是因爲發送的數據大於65535字節?你知道如何改變WCF Web API的這個值嗎? – aumanets 2011-06-16 09:49:42