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. Web API上傳文件
- 2. Wcf Web API沙箱端點處理
- 3. WCF上傳文件 - 點子和示例
- 4. WCF REST上傳文件
- 5. Angular 2與Web API文件上傳
- 6. asp.net Web API文件上傳fileData空
- 7. ASP.NET Web api文件上傳和IIS
- 8. Silverlight Sharepoint客戶端API。上傳文件
- 9. 從桌面應用端到端教程上傳WCF文件?
- 10. 文件API上傳文件
- 11. REST API文件上傳
- 12. 創建一個WCF Web Api客戶端
- 13. WCF Web API如何向每個端點添加參數
- 14. 通過API上傳文件
- 15. 與端點API
- 16. ios 4.3上傳文件到wcf json web服務
- 17. 如何創建WCF休息端點以將大型文件上傳到ASP.NET MVC
- 18. WCF文件服務器中的端點
- 19. WCF - 通過http上傳流文件上傳
- 20. 文件傳輸/ WCF
- 21. WCF使用MTOM上傳50Mg文件
- 22. 從android上傳文件到wcf
- 23. 將文檔上傳到Web API
- 24. 上傳文件與WCF REST服務
- 25. WCF服務合同從ExtJs前端接收文件上傳
- 26. WCF Rest上傳文件大小問題
- 27. 只有XML配置文件的WCF服務上的SSL端點
- 28. ASP.NET - SVN web上傳前端?
- 29. Web客戶端上傳值
- 30. 使用wcf恢復和上傳文件
我不認爲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