Tôi muốn upload file lên máy chủ của tôi từ ứng dụng của tôi. Mã bên dưới hoạt động rất tốt khi ứng dụng đang hoạt động. Nếu tôi bấm nút Home hoặc mở một ứng dụng tải lên dừng lại.AFNetworking upload
tôi kích hoạt nền lấy nhưng vẫn không làm việc.
Afnetworking đã hỗ trợ nền nhưng tôi không thể tìm ra cách nào để triển khai tính năng này để mã của tôi.
NSString *str=[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"Archive.zip"];
NSDictionary *parameters = @{@"foo": @"bar"};
NSURL *filePath = [NSURL fileURLWithPath:str];
AFHTTPRequestSerializer *serializer = [AFHTTPRequestSerializer serializer];
NSData *imageData=[NSData dataWithContentsOfURL:filePath];
NSMutableURLRequest *request =
[serializer multipartFormRequestWithMethod:@"POST" URLString:@"http://url"
parameters:parameters
constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
[formData appendPartWithFileData:imageData
name:@"image"
fileName:@"Archive.zip"
mimeType:@"application/zip"];
}];
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
AFHTTPRequestOperation *operation =
[manager HTTPRequestOperationWithRequest:request
success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"Success %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Failure %@", error.description);
}];
[operation setUploadProgressBlock:^(NSUInteger __unused bytesWritten,
long long totalBytesWritten,
long long totalBytesExpectedToWrite) {
NSLog(@"Wrote %lld/%lld", totalBytesWritten, totalBytesExpectedToWrite);
}];
[operation start];
là bạn có thể tìm thấy một giải pháp cho vấn đề này ? –
Từ tài liệu NSSDSession của Apple, hỗ trợ chuyển nền chỉ tải lên và tải xuống tác vụ (không có tác vụ dữ liệu) với URL của tệp, Theo mã của bạn có vẻ như bạn đang sử dụng tải lên NSData. – vnaren001