Я пытаюсь отправить изображение с PHP (на стороне сервера) в мое приложение iOS, чтобы я мог отображать его в UIImageView.Преобразование responseObject base64 закодированная строка в UIImage
Мой стороне сервера код:
<?php
header("Content-Type: image/jpeg"); //if your data is format jpeg
$username = $_POST['username'];
$count = $_POST['count'];
$base64string = base64_encode(file_get_contents("images/".$username."/".$count."/".$username."file".$count.".jpeg"));
echo $base64string;
?>
Я получаю изображение с помощью этого кода в мое приложение IOS:
NSString * uploadURL = @"http://192.168.1.4/getimage.php";
NSLog(@"uploadImageURL: %@", uploadURL);
NSString *queryStringss = [NSString stringWithFormat:@"%@", uploadURL];
queryStringss = [queryStringss stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.responseSerializer=[AFJSONResponseSerializer serializerWithReadingOptions:NSJSONReadingAllowFragments];
manager.responseSerializer.acceptableContentTypes = [manager.responseSerializer.acceptableContentTypes setByAddingObject:@"text/html"];
manager.responseSerializer.acceptableContentTypes = [manager.responseSerializer.acceptableContentTypes setByAddingObject:@"text/plain"];
manager.responseSerializer.acceptableContentTypes = [manager.responseSerializer.acceptableContentTypes setByAddingObject:@"image/jpeg"];
NSUserDefaults *userdefaults = [NSUserDefaults standardUserDefaults];
NSString *usernameEncoded = [marker.title stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSDictionary *params = @{@"username": usernameEncoded, @"count": [object valueForKey:@"count"]};
[manager POST:queryStringss parameters:params success:^(AFHTTPRequestOperation * _Nonnull operation, id _Nonnull responseObject) {
NSLog(@"Success: %@ ***** %@", operation.responseString, responseObject);
NSData *decodedData = [[NSData alloc] initWithBase64EncodedString:responseObject options:0];
image.image = [UIImage imageWithData:decodedData scale:300/2448];
[self.view addSubview:image];
}
failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@ ***** %@", operation.responseString, error);
}];
Когда я запускаю код - она попадает в блок неисправности с ошибкой который читает как base64 закодирован «строка» (изображения), что я посылаю:
2015-12-03 01:19:15.655 sneek[6261:1952572] Error: /9j/4AAQSkZJRgABAQAASABIAAD/4QBYRXhpZgAATU0AKgAAAAgAAgESAAMAAAABAAYAAIdpAAQAAAABAAAAJgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAMwKADAAQAAAABAAAJkAAAAAD/7QA4UGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAAA4QklNBCUAAAAAABDUHYzZjwCyBOmACZjs+EJ+/8AAEQgJkAzAAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tr
... (very long) ...
Error Domain=NSCocoaErrorDomain Code=3840 "Invalid value around character 0." UserInfo={NSDebugDescription=Invalid value around character 0.}
что я делаю Inco rrectly?
поблагодарить вы пытаетесь ваше второе предложение сейчас ... не был уверен, как реализовать свое первое предложение на IOS стороне. – ewizard
Истинный подход JSON? Затем вы можете захватить строку base64 с помощью 'response [" image "]' и затем декодировать это. – Rob
Я изменил php на то, что вы предложили ... и я собираюсь обновить то, что выглядит мой код iOS прямо сейчас ... Я также получаю новую ошибку, но я думаю, что я еще дальше. Спасибо за вашу помощь! – ewizard