【问题标题】:Best way to upload files from iOS app to Windows Server?将文件从 iOS 应用程序上传到 Windows Server 的最佳方式?
【发布时间】:2013-09-20 09:48:36
【问题描述】:

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

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

我对网络客户端、webDAV 等进行了一些研究,但不确定哪种方法真正适合这种情况。

谢谢。

【问题讨论】:

  • 嗨 Larry - iOS 7 已经发布,请分享您想要分享的内容。谢谢。

标签: c# xamarin.ios webclient http-upload


【解决方案1】:

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

一些有用的链接:

C# HttpClient 4.5 multipart/form-data upload

Getting the upload progress during file upload using Webclient.Uploadfile

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

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

【讨论】:

  • bayfrontconsulting 谢谢!关于上传什么更好 - WCF with Mtom/streaming vs. webclient有什么意见吗?
  • 老实说,我会远离移动领域中更重量级的东西,例如 WCF。不过,我相信很多人都成功使用过它。
【解决方案2】:

iOS 7 引入了一个新类MonoTouch.Foundation.NSUrlSession,它是在网络之间传输较大文件的首选方式。 NSUrlSession 转移可以在应用程序在后台运行。

this article 中解释了编程模型。

这是sample application that demonstrates the technique

【讨论】:

  • 谢谢 - 对于 iOS 7 及更高版本来说当然是有趣的选择。需要一个上传选项(不是下载)和系统从设备到 IIS 配置来实现这个选项。
  • @Neal NSUrlSession 也处理上传,但我不知道答案的服务器端方面。
  • 感谢拉里的提示!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-12
相关资源
最近更新 更多