【问题标题】:NSURLSessionUploadTask Background Session - File Upload with some parametersNSURLSessionUploadTask 后台会话 - 带有一些参数的文件上传
【发布时间】:2015-12-04 18:11:52
【问题描述】:
在服务器端是一个 PHP Web 服务,它接受 post 参数 userid、authenticationKey、一些标题、一些 cmets 和一个文件
我正在 iPhone 上录制音频并上传到此服务。如果我使用 NSURLSessionUploadTask 并使用 DefaultSessionConfiguration 构造多部分文件上传请求,则代码可以正常工作
不过,我想使用后台会话配置上传文件。
我在 post 请求中找不到任何用于后台文件上传(以及一些参数)的示例代码。我正在使用 Swift 和 iOS 8
非常感谢您的帮助。
谢谢。
萨拉
【问题讨论】:
标签:
ios
swift
upload
nsurlsession
nsurlsessionuploadtask
【解决方案1】:
您可以将数据写入磁盘上的文件并将上传正文作为文件 URL 提供,或者 (IIRC) 您可以创建 NSURLRequest 对象,将 bodyData 属性设置为 NSData blob,然后使用 NSURLDownload 请求。不过,我不能 100% 确定后一种方法是否有效——您可能必须将身体作为身体流提供,这在背后有点痛苦。
【解决方案2】:
我已在后台成功上传了一个带有额外表单数据(参数)的文件。这是通过手动创建完整的正文请求并将该字节块保存为文件来完成的。
然后我可以启动一个 uploadTask,即使应用程序进入后台,它也会上传该文件。
上传后,我删除了文件。