我需要为我的应用程序在后台上传文件。
所以我看了uploadtask方法,但它实际上需要一个fileurl来处理后台transfert。 将我的对象放在JSON / XML中并将其保存为文件但在服务器端需要更改时,这真的是一件大事。
但是,我注意到有一种方法可以使用downloadtask上传文件,这还会返回身体响应。
基本上,我会在内存中创建我的对象,并在我的下载请求中将其添加为NSData(byte [])。 它实际上工作但我担心可能存在内存/连接错误,因为它不仅是磁盘上的文件而且还有内存和我们 处于背景状态......
这是一个正确的方法吗?或者我可能有连接问题?
谢谢!
答案 0 :(得分:1)
我认为没关系,这是documented by Apple
使用下载任务上传文件
要上传下载任务的正文内容,您的应用必须提供 NSData对象或正文流作为NSURLRequest的一部分 在创建下载请求时提供的对象。
如果您使用流提供数据,则您的应用必须提供 URLSession:task:needNewBodyStream:委托方法提供新的 身份验证失败时的正文流。这个方法是 在使用流上传正文内容中进一步描述。
下载任务的行为就像数据任务一样,除了方式 将数据返回到您的应用程序。