Я хочу разработать приложение для iPhone, которое позволяет пользователю делать и сохранять фотографии в приложении. Кроме того, пользователю разрешено загружать изображение на сервер только в том случае, если введены такие данные, как "название", "местоположение" и "дополнительная информация".
Если это сделано, изображение и принадлежащие ему данные должны быть загружены на мой веб-сервер.
Я уже создал приложение, которое извлекает данные с сервера, поэтому создание соединения не будет проблемой.
Поскольку я новичок в веб-серверах, мой вопрос заключается в том, как лучше всего загружать изображения в сочетании с пользовательской информацией?
Что было бы хорошим способом хранения изображений и принадлежащей им информации? Я предполагаю, что это будет база данных MySQL для информации (название, местоположение, дополнительная информация, ссылка на изображение), а как насчет изображений? Где я могу прочитать об обработке файлов на веб-серверах?
заранее спасибо
Ответ 1 · рейтинг 1 · bdparrish
Вы должны создать API на веб-сервере, с которым iPhone может связаться для отправки данных POST на ваш веб-сервер. Вы можете просто создать файл NSURLConnection, чтобы создать пакет для отправки данных с iPhone приложение.
Внутри NSURLConnection вы можете указать, что это пакет POST, а затем добавить данные в тело запроса. Данные вашего изображения должны быть преобразованы в UTF8 и сохранены как nvarchar или что-то в этом роде в вашей базе данных.
Поймите, это обзор того, что вам нужно делать, без знания вашей внутренней работы веб-приложения я не могу дать вам конкретику.
Ответ 2 · рейтинг 1 · Ian L
Я бы предложил преобразовать изображение в его представление base64, а затем вы можете опубликовать это в вызове веб-службы.
Во-первых, преобразуйте UIImage в NSData, используя:
UIImage *img = [UIImage imageNamed:@"MyImage.png"];
NSData *imgData = UIImageJPEGRepresentation(img, 1.0);
Затем вы можете преобразовать это в строку в кодировке base64, используя некоторые полезные классы, созданные Мэттом Галлахером - см. это сообщение здесь. В коде, доступном для загрузки, есть класс NSData+Base64, который позволит вам преобразовать данные в строку:
NSString *imgBase64 = [imgData base64EncodedString];
Получив эту строку, вы можете отправить ее на сервер и либо сохранить строку, либо декодировать ее и сохранить на сервере в виде файла изображения. Вы должны быть в состоянии найти пример того, как это сделать, используя выбранную вами технологию.