Загрузить данные на сервер iPhone

Я хочу разработать приложение для iPhone, которое позволяет пользователю делать и сохранять фотографии в приложении. Кроме того, пользователю разрешено загружать изображение на сервер только в том случае, если введены такие данные, как «название», «местоположение» и «дополнительная информация».

Если это сделано, изображение и принадлежащие ему данные должны быть загружены на мой веб-сервер.

Я уже создал приложение, которое извлекает данные с сервера, поэтому создание соединения не будет проблемой.

Поскольку я новичок в веб-серверах, мой вопрос заключается в том, как лучше всего загружать изображения в сочетании с пользовательской информацией?

Что было бы хорошим способом хранения изображений и принадлежащей им информации? Я предполагаю, что это будет база данных MySQL для информации (название, местоположение, дополнительная информация, ссылка на изображение), а как насчет изображений? Где я могу прочитать об обработке файлов на веб-серверах?

заранее спасибо


person pmk    schedule 01.03.2012    source источник
comment
Это много разных вопросов, и ответы зависят от многих других вещей, таких как масштаб, ваш опыт, бюджет, проблемы безопасности ... если вы разберете это и зададите более конкретные вопросы, люди могут помочь вам здесь.   -  person Ali    schedule 01.03.2012


Ответы (2)


Вы должны создать API на веб-сервере, с которым iPhone может связаться для отправки данных POST на ваш веб-сервер. Вы можете просто создать файл NSURLConnection, чтобы создать пакет для отправки данных с iPhone приложение.

Внутри NSURLConnection вы можете указать, что это пакет POST, а затем добавить данные в тело запроса. Данные вашего изображения должны быть преобразованы в UTF8 и сохранены как nvarchar или что-то в этом роде в вашей базе данных.

Поймите, это обзор того, что вам нужно делать, без знания вашей внутренней работы веб-приложения я не могу дать вам конкретику.

person bdparrish    schedule 01.03.2012
comment
Спасибо за ответ. Я знаю, как отправлять данные с помощью NSURLConnection через POST. Чего я не знаю, так это того, как сервер может принимать и сохранять данные. Какой API мне нужно создать? - person pmk; 06.03.2012
comment
какова конфигурация вашего веб-приложения? ASP.NET MVC, ASP.NET WebForms, PHP и т. д. - person bdparrish; 06.03.2012

Я бы предложил преобразовать изображение в его представление base64, а затем вы можете опубликовать это в вызове веб-службы.

Во-первых, преобразуйте UIImage в NSData, используя:

UIImage *img = [UIImage imageNamed:@"MyImage.png"];
NSData *imgData = UIImageJPEGRepresentation(img, 1.0);

Затем вы можете преобразовать это в строку в кодировке base64, используя некоторые полезные классы, созданные Мэттом Галлахером — см. это сообщение здесь. В коде, доступном для загрузки, есть класс NSData+Base64, который позволит вам преобразовать данные в строку:

NSString *imgBase64 = [imgData base64EncodedString];

Получив эту строку, вы можете отправить ее на сервер и либо сохранить строку, либо декодировать ее и сохранить на сервере в виде файла изображения. Вы должны быть в состоянии найти пример того, как это сделать, используя выбранную вами технологию.

person Ian L    schedule 01.03.2012
comment
Спасибо за ответ. Звучит интересно, я скажу вам, сработало ли это для меня. - person pmk; 06.03.2012