【发布时间】:2014-04-12 06:17:32
【问题描述】:
我需要将图像上传到我的 ASP.Net 网站,我已经让它与 NSURLConnection 一起使用,但是当我需要上传非常大的文件时,由于缺少 ram 将文件传输到 NSData 然后上传而崩溃它。所以我发现了新的 API NSURLSession 和方法 uploadTaskWithRequest:withFile 以允许传输更大的文件。我已经更改了 ASP.NET 服务器上的最大文件限制以允许大文件,并对其进行了测试,它适用于大文件(100MB+),但有时手机没有足够的内存来分配文件的 NSData,当我使用 NSURLConnection 时。我已经多次尝试 NSURLSession 没有成功。
这是我尝试过的一个例子:
NSString *urlString = [NSString stringWithFormat:@"https://examplesecuresite.com/Index.aspx?username=%@", username];
NSMutableURLRequest *request =
[[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:urlString]];
[request setHTTPMethod:@"PUT"];
// 3
NSData *noteContents = UIImageJPEGRepresentation(image, 1);
// 4
NSURLSession *session = [[NSURLSession alloc] init];
NSURLSessionUploadTask *uploadTask = [session
uploadTaskWithRequest:request
fromData:noteContents];
[uploadTask resume];
【问题讨论】:
-
顺便说一句,围绕请求的性质存在一大堆可能的问题,根据迄今为止提供的内容,我们无法回答。如果您提供了有效的
NSURLConnection源的副本,这可能有助于我们确认在转换为NSURLSession的过程中没有引入任何问题。
标签: objective-c nsurlsession nsurlsessiontask