ステップ1:ここでリクエストを作成しています
NSMutableURLRequest *request1 = [[AFHTTPRequestSerializer serializer] multipartFormRequestWithMethod:@"POST"
URLString:[NSString stringWithFormat:@"%@%@", API_MAIN_URL, IMAGE_UPLOAD]
parameters:param constructingBodyWithBlock:^(id formData) {
[formData appendPartWithFileURL:[NSURL fileURLWithPath:strImagePath]
name:@"sendimage"
fileName:[strImagePath lastPathComponent]
mimeType:@"image/png"
error:nil];
} error:nil];
[request1 setValue:authToken forHTTPHeaderField:@"Authorization"];
ステップ 2:ここでは、特定の場所にストリームを作成しています
[[AFHTTPRequestSerializer serializer] requestWithMultipartFormRequest:request1
writingStreamContentsToFile:[NSURL fileURLWithPath:[strImagePath stringByDeletingPathExtension]]
completionHandler:^(NSError *error){
ステップ 3:ここでは、アップロード タスクを作成しています。
///here is file
NSProgress *progress = nil;
NSURLSessionUploadTask *uploadTask = [self.manager uploadTaskWithRequest:request1
fromFile:[NSURL fileURLWithPath:strImagePath]
progress:&progress
completionHandler:^(NSURLResponse *response, id responseObject, NSError *error) {
NSLog(@"response : %@\n\n responseObject : %@\n\n error : %@", response, responseObject, error);
}];
[uploadTask resume];
}
}];
}
私の問題は、アプリケーションがバックグラウンド モードに移行する前に、HTTPBody
Step:1 と Step:2 を使用して指定された場所にすべてのリクエスト (HTTPStream) を書き込み、ファイル内 (アプリケーションNSArray
のフォアグラウンド内) にすべてを書き込んだ後にすべてのリクエストを保存したいということです。HTTPStream
画像をアップロードする準備をします。
次に、ステップ 3 の助けを借りてバックグラウンド タスクの作成を開始しますNSArray
。このアプローチでは、画像をアップロードできません。
しかし、すべてのステップを 1 つずつ呼び出すと、サーバーに画像がアップロードされますが、このアプローチでは、特定の場所に書き込む必要があるため、アプリケーションは作成リクエストに対してフォアグラウンドにある必要がありHTTPBody
ます。
この問題を解決するのを手伝ってください。私は過去 2 週間からこの問題に行き詰まっています。私のアプリケーションでは、サーバー経由で 500 を超える画像をアップロードする必要がありました。