Изображение, загруженное с iPhone, повреждено - PullRequest
0 голосов
/ 25 февраля 2011

Я пытаюсь сделать фотографию из приложения для iPhone и загрузить ее в службу WCF REST.

Я использую UIImagePickerController, чтобы получить доступ к камере и назначить новую фотографию для UIImageView на моем виде.

Затем я использую UIImageJPEGRepresentation, чтобы преобразовать его в «реальные» данные.

NSData *imageData = UIImageJPEGRepresentation(imageView.image, 0.2);

Затем я пытаюсь отправить запрос в мой сервис следующим образом:

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
    [request setFile:imageData withFileName:@"myphoto.jpg" andContentType:@"image/jpeg" forKey:@"imageData"];

[request setRequestMethod:@"POST"];
[request setDelegate:self];
[request setDidFinishSelector:@selector(requestDone:)];
[request setDidFailSelector:@selector(requestWentWrong:)];
[request startAsynchronous];

Служба получает данные и записывает их на диск моего веб-сервера. Но я не могу открыть изображение на сервере, так как Windows сообщает, что файл поврежден. Полагаю, мне нужно установить кодировку или тип содержимого в приложении для iPhone. Я получаю код состояния HTTP 200 от своего сервиса после завершения загрузки.

Я сделал небольшое клиентское приложение на C # просто для тестирования службы, и когда я загружаю фотографию с моего компьютера с Windows, используя этот клиент, все в порядке. Поэтому я думаю, что это было что-то, что я упускаю в вашем запросе от iPhone.

Спасибо за чтение и за любую помощь, которую вы можете предоставить.

1 Ответ

1 голос
/ 02 марта 2011

Попробовав массу подходов, я наконец-то заработал:

[request appendPostData:imageData];

вместо:

[request setFile:imageData withFileName:@"myphoto.jpg" andContentType:@"image/jpeg" forKey:@"imageData"];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...