1

我的 iOS 应用程序允许用户存储 PDF、图像等文件。我们需要将应用程序文件同步到云端,因为我们还为用户提供了一个门户网站来查看相同的数据。我在我的 Windows 窗体应用程序中使用 WCF(Mtom 编码/流),但这在 Xamarion.iOS(MonoTouch)中不起作用。Mtom 消息编码似乎存在问题,因此我正在寻找一种替代和/或更好的方法来可靠地上传文件,例如流式传输、显示进度以及如果可能的话在 C# 5 中使用异步等待。

您推荐什么方法,如果您有任何示例代码或链接,那就太好了。此外,当我运行 Windows Server 2008 R2 时,IIS 7.5 需要什么。最后,当我运行 Watchguard 设备时出现任何防火墙问题,所以如果我需要打开任何东西以使其正常工作,请告知。我假设这会通过 HTTP 或 HTTPS 发生。

我已经对 Web 客户端、webDAV 等进行了一些研究,但不确定什么是这种场景的最佳方法。

谢谢你。

4

2 回答 2

2

HttpClient (async) 或 WebClient 可以很好地处理上传。您可以创建 ASP.NET 上传处理程序或 MVC 操作来读取 HTTP 发布的文件。

一些有用的链接:

C# HttpClient 4.5 多部分/表单数据上传

使用 Webclient.Uploadfile 在文件上传期间获取上传进度

http://haacked.com/archive/2010/07/16/uploading-files-with-aspnetmvc.aspx

编辑:请参阅 Larry OBrien 的回答,解释允许后台传输的 iOS 7 本机 MonoTouch.Foundation.NSUrlSession。

于 2013-09-16T02:06:13.683 回答
2

iOS 7 引入了一个新类 ,MonoTouch.Foundation.NSUrlSession它是在 Web 之间传输较大文件的首选方式。NSUrlSession当应用程序在后台时,传输可以工作。

本文解释了编程模型。

这是一个演示该技术的示例应用程序

于 2013-09-19T01:29:10.137 回答