Я пытаюсь отправить изображение в качестве байта [] на сервер. Когда я отправил его с POST-MAN, как html отправит файлы, он будет работать.Загрузка изображения на сервер (Objective C)
Но когда я пытаюсь послать от Objective C кода, он сентов иной массив байтов:
+ (void)uploadPhoto:(UIImage*)photo withCompletionBlock:(responceBlock)block
{
AFHTTPRequestOperationManager* manager = [[AFHTTPRequestOperationManager alloc] init];
NSData* imageData = UIImageJPEGRepresentation(photo, 6);
[manager.requestSerializer setValue:[UserDefaultsHelper getToken] forHTTPHeaderField:@"X-AUTH-TOKEN"];
AFHTTPRequestOperation* op = [manager POST:@"http://localhost:8080/image/save"
parameters:@{}
constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
[formData appendPartWithFileData:imageData name:@"ParamFiles" fileName:@"photo2131231.jpg" mimeType:@"image/jpeg"];
}
success:^(AFHTTPRequestOperation* operation, id responseObject) {
NSLog(@"Success: %@ ***** %@", operation.responseString, responseObject);
}
failure:^(AFHTTPRequestOperation* operation, NSError* error) {
NSLog(@"Error: %@ ***** %@", operation.responseString, error);
}];
[op start];
}
Ответ: Извините за глупый вопрос. Проблема, что на сервере я обрабатываю только двоичное изображение. Objective C code посылает мне multipart файлы, поэтому он содержит двоичное изображение с именем файла, mimetype и другими полями. Я преобразовал все в байты и попытался сохранить это как изображение. Конечно, сервер не может этого сделать.
Итак, в чем проблема? Массив данных отличается? Или вы столкнулись с какой-либо ошибкой? –
Когда я отправляю из IOS, он отправляет разные байты с разной длиной, поэтому на сервере он не может конвертироваться в BufferedImage (java) – annoirq
Получаете ли вы свое изображение при использовании POST-MAN? –