我需要将图像上传到我的 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];