0

我需要通过 HTTP Post 上传NSDataUIImage或者NSUrl通过我为 ios6 开发的 iPhone 应用程序上传视频文件

我需要支持以下情况:

  1. 用户点击主页 - 继续在后台上传
  2. 连接丢失 - 即使用户通过单击主页按钮离开应用程序,当有新的互联网连接时继续上传)
  3. 用户退出应用(点击x),正在上传,下次打开应用会继续

在情况 2 和 3 中:

  1. 它将从它在 NSData 中的相同位置继续(不是从文件的开头开始)
  2. 它将在新调用中发送一个变量 index={index} (其中 index 是它从 0 开始继续的次数

我知道如何NSURLConnection用作异步连接。但是如何支持以上3种情况呢?

4

1 回答 1

2

为此,您需要两件事:

  1. 永久存储的记录已上传到服务器的数据量。
  2. 接受Content-Range标头并可以处理存储部分上传并在以后完成它们的服务器。(或具有处理相同功能的 API 的服务器)。

如果你有这两个东西,那么你可以使用NSURLConnection它的委托方法来执行任务,NSUserDefaults(或类似的)来存储进度信息和subdataWithRange:(或也许NSFileHandle)只获取需要上传的数据。


查看connection:didSendBodyData:totalBytesWritten:totalBytesExpectedToWrite:用于获取已发送数据的更新。将该数字(如果尚未发送所有数据)存储到用户默认值中。发送完所有数据后,从用户默认值中删除该数字。

通过subdataWithRange:创建从存储的数字到(total length of data - the number) 的范围来使用。

于 2013-09-22T16:53:48.400 回答