Mih*_*scu 5 file-upload objective-c ios nsurlsession nsurlsessionuploadtask
我试图在后台上传一个2GB的大文件NSURLSessionUploadTask.该服务使用多部分格式,所以为了在后台上传我正在创建一个带有请求主体的临时文件,然后我使用uploadTask来安排上传,当文件完成上传时我正在删除临时文件.
NSURLSessionUploadTask  *uploadTask = [[self backgroundNSURLSession] uploadTaskWithRequest:uploadRequest fromFile:filePath];
[uploadTask resume];
对于小于1.4 GB的文件,上传工作正常,但是当我尝试上传2 GB的视频文件时,上传失败.服务器返回错误消息,我没有附加文件.
我正在将ASIHTTP的上传组件重构为NSURLSession,如果我使用ASIHTTP进行上传,它甚至可以用于大文件.
这是我创建我的NSURLSession的方式:
 if ([NSURLSessionConfiguration respondsToSelector:@selector(backgroundSessionConfigurationWithIdentifier:)]) {
        self.configuration = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:appID];
    } else  {
        self.configuration = [NSURLSessionConfiguration backgroundSessionConfiguration:appID];
    }
    self.configuration.HTTPMaximumConnectionsPerHost = 1;
    self.configuration.discretionary = YES;
    self.configuration.timeoutIntervalForResource = 60*60;
    self.configuration.timeoutIntervalForRequest  = 60*60;
    backgroundSession = [NSURLSession sessionWithConfiguration:self.configuration delegate:self delegateQueue:nil];
因此问题仅适用于大文件,对于小文件,执行上载.还有其他人遇到过同样的问题吗?
根据苹果开发者对属性自由裁量权的描述 ,如果文件太大,系统可能会等待像WIFI连接这样的好时机。
将酌情属性切换为“否”,然后重试。祝你好运!
self.configuration.discretionary = NO;
| 归档时间: | 
 | 
| 查看次数: | 1577 次 | 
| 最近记录: |