0

我有一个要求,用户可以通过同一个应用程序将应用程序中存在的文件上传到 SharePoint。

我尝试使用共享点的http://schemas.microsoft.com/sharepoint/soap/CopyIntoItems方法。但它需要base64 编码格式的文件嵌入到SOAP 请求的主体中。当我尝试将 30 MB 文件转换为 base64 编码字符串时,我的代码在设备上崩溃了?相同的代码在模拟器上执行得很好

是否有任何其他替代方法可以将文件(如文件流等)上传到共享点?我可能必须上传最大 500 MB 的文件?是否有更高效的库将 NSData 转换为大文件的 base64 编码字符串???

我是否应该分块读取文件,然后将其转换为 base64 编码字符串并在转换完整文件后上传文件?还有其他方法吗???

4

1 回答 1

1

首先,您的代码可能因为内存不足而崩溃。我会做一个循环,在其中读取我转换的块,然后推送到一个打开的套接字。这可能意味着您需要转到比 NSURLConnection 更低的级别,我曾尝试搜索 NSURLConnection 和分块上传,但没有取得多大成功。

有些人似乎建议使用ASIHttp,但看看主页似乎被开发人员放弃了,所以我不能推荐。

AFNetworking看起来非常好,它支持块,我可以在第一页的示例中看到它是如何为您使用的。查看流式请求示例。基本上创建一个 NSInputStream,您将分块数据推送到并在 AFHTTPURLConnectionOperation 中使用它。

于 2012-07-18T11:41:05.043 回答