2011-02-24 67 views
3

我在MonoTouch中取得的iPhone/iPad的应用程序,这是已经在苹果商店。但仍然有一个问题尚未完全解决。我需要能够将大文件上传到我们的服务器。尺寸可以从2到100 Mb不等。我曾尝试几种方法:帮助iOS应用崩溃与“内存不足”

  1. 使用SOAP的Web服务,发送的字节数组:1)发送整个文件。坠毁。 b)以1Mb的块分割。在10-15个大块之后坠毁(变化)。

  2. 使用WebClient.UploadFile。大部分时间用较小的文件工作< 5 Mb,但时不时会崩溃,并且大于10-12 Mb的任何事情都会崩溃。在服务器上,我有一个接收通过POST

这里发送的信息是从设备的实际代码aspx页面:

WebClient wc = new WebClient(); 
string sLFN = sLocalFileName; 
FileInfo fi = new FileInfo (sLFN) 
string sUri = getUri(); 
byte [] f = wc.UploadFile (sUri, sLFN) 

我认为,iPhone的内存容量/ iPad是直接影响到这一点的东西。

有谁有任何recomendation或者说,我应该遵循建议的做法?

在此先感谢

埃德加Herrador

+0

嗨埃德加。你有没有解决这个问题。因为我在其中一个应用程序中使用* WebClient.UploadFile *,并且它与大多数客户端正常工作,但是一个客户端报告应用程序在发送文件时发生崩溃。发送的文件是在* iPad *上拍摄的照片,因此它们的尺寸远远小于5Mb,但它仍然出错。 – BruceHill 2013-08-09 08:33:37

回答

1

我建议采用流&组块。传递大文件时可能会超出消息大小。

,能得到任何异常?

+0

这是我的第一种方法:以1Mb大块分割。 10-15大块后坠毁。 – 2011-02-24 19:11:58

+0

嗨,埃德加,你有没有例外?你的服务器端处理文件的方法是什么?它是基于WCF吗?你使用流媒体吗? – Maciek 2011-02-25 06:19:24

0

你试过WCF流​​(http://msdn.microsoft.com/en-us/library/ms733742.aspx)?