サーバーにZIPファイルをアップロードする必要があります。次のコードを使用しています。
NSMutableURLRequest *request = [httpClient multipartFormRequestWithMethod:@"POST" path:methode parameters:nil constructingBodyWithBlock: ^(id <AFMultipartFormData>formData) {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *databasePath = [documentsDirectory stringByAppendingPathComponent:@"data.xml"];
ZipArchive *zip1 = [[ZipArchive alloc] init];
BOOL ret = [zip1 CreateZipFile2:[documentsDirectory stringByAppendingPathComponent:@"data.zip"]];
ret = [zip1 addFileToZip:databasePath newname:@"data.xml"];
[formData appendPartWithFileData:[NSData dataWithContentsOfFile:[documentsDirectory stringByAppendingPathComponent:@"data.zip"]]
name:@"FILE"
fileName:@"data.zip"
mimeType:@"application/zip"];
}];
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
[operation start];
ZIPファイルは問題ありません。リクエストは大丈夫です。しかし、サーバーの応答は、ファイルが途中で破損したことを示しています。サーバーは931バイトではなく、855バイトのZIPファイルのみを受信します。
サーバー管理者は私に(iOSエクスペリエンスなしで)適切なアップロードタイプを設定する必要があると言いました(HTMLの場合のように):
enctype="multipart/form-data"