PHP: Как я могу сделать веб-сервис, который отвечает с помощью XML и изображения? - PullRequest
0 голосов
/ 29 октября 2011

Мои возможности PHP практически отсутствуют, и я пытаюсь создать очень простой веб-сервис REST.В настоящее время служба запрашивает базу данных и возвращает изображение в ответе «application / octet-stream».Я вызываю этот веб-сервис через ASIHTTP (каркас REST iPhone), который прекрасно возвращает изображение :)

Есть ли способ заставить службу PHP вернуть изображение и файл XML?Я думаю, что единственный способ сделать это - записать байтовый массив изображения непосредственно в файл XML.Если так - как я могу сделать это с PHP?

Спасибо

Ответы [ 3 ]

2 голосов
/ 29 октября 2011

Если ASIHTTP поддерживает это, вы можете попробовать встроить данные изображения в XML, но сначала вам нужно прочитать соответствующую документацию.Вы не можете просто сбросить кучу двоичных данных в файл XML, вам нужно сначала преобразовать их в нечто вроде base64.

IMO, лучший (более надежный) подход - отправлять оба файла независимо:один запрос на XML, который может содержать идентификатор или что-то для изображения, а затем другой запрос на получение самого изображения.

Помимо более надежного кода, вы также сможете анализировать весь XML передизображение полностью загружено.Видя, как изображения обычно намного больше, чем сообщения XML, разница будет заметна.

1 голос
/ 29 октября 2011

Один из методов заключается в том, чтобы взять двоичные данные и (например) base64_encode, вставить их в ваш XML, а затем, когда вы их получите, вы можете base64_decode, используя + (NSData *)decodeBase64WithString:(NSString *)strBase64 { из здесь :

NSData *data = [Base64 decodeBase64WithString:strBase64];
UIImage *image = [UIImage imageWithData:data];
1 голос
/ 29 октября 2011

Я думаю, что единственным способом было бы base64 кодировать данные вашего изображения с помощью PHP и декодировать их на вашем iPhone. См. Справочную страницу base64_encode - первый комментарий описывает, как использовать его для чтения изображения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...