Опубликовать изображение с помощью AFNetworking?

Как разместить изображение с помощью AFNetworkingЯ использую приведенный ниже код для публикации изображения. Но изображение не загружается на сервер. После публикации изображения я получаю эту ссылку в результате " http://thisisswitch.com:8084/SmartSwitchService/UserImages/69684177-4601-4665-8890-5424e3fbff73.png".

Может кто-нибудь сказать мне, в чем проблема в коде?

Вот мой код:

    AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:[NSURL URLWithString:BaseUrl]];
     NSMutableURLRequest *request = [httpClient multipartFormRequestWithMethod:@"POST" path:posturl parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
    [formData appendPartWithFormData:imgData name:@"image"];

    }];

    [httpClient registerHTTPOperationClass:[AFHTTPRequestOperation class]];
    AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
    NSDictionary *dict  = (NSDictionary *)JSON;

    } failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) {
    }];
    [operation start];

2 ответа

С Гитхаба читайте мне:

NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration];

NSURL *URL = [NSURL URLWithString:@"http://example.com/upload"];
NSURLRequest *request = [NSURLRequest requestWithURL:URL];

NSURL *filePath = [NSURL fileURLWithPath:@"file://path/to/image.png"];
NSURLSessionUploadTask *uploadTask = [manager uploadTaskWithRequest:request fromFile:filePath progress:nil completionHandler:^(NSURLResponse *response, id responseObject, NSError *error) {
    if (error) {
        NSLog(@"Error: %@", error);
    } else {
        NSLog(@"Success: %@ %@", response, responseObject);
    }
}];
[uploadTask resume];

Вот как я это делаю (в AFNetworking 2.x):

- (void)requestWithFormData:(void (^)(id <AFMultipartFormData> formData))formBlock
                 withParams:(NSDictionary *)params
             webservicePath:(NSString *)webservicePath
                    success:(void (^)(AFHTTPRequestOperation *operation, id jsonDictionary))successBlock
                    failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failureBlock
{
    // Handle request for file upload
    AFHTTPRequestOperation *op = [self.manager POST:webservicePath
                                         parameters:params
                          constructingBodyWithBlock:formBlock
                                            success:success
                                            failure:failureBlock];
    [op start];
}

Затем я использую его согласно следующему:

void (^formBlock)(id <AFMultipartFormData> formData) = ^(id <AFMultipartFormData>formData)
{
    NSData *data1 = UIImagePNGRepresentation(profileImage);
    [formData appendPartWithFileData:data1 name:@"file" fileName:@"picture.png" mimeType:@"image/png"];
};

[networkingUtil requestWithFormData:formBlock
                         withParams:params
                     webservicePath:@"myserver.com/upload"
                            success:successBlock
                            failure:failureBlock];

Ваш сервер должен обрабатывать данные формы и искать file,

Другие вопросы по тегам