FTP против HTTP загрузки на iPhone

В моем приложении для iPhone мне нужно загрузить изображения на сервер. Я не беспокоюсь о безопасности и прочем, просто нужен быстрый и надежный метод. Я могу встроить данные своего изображения в HTTP-запрос поста или создать FTP-соединение с сервером (используя SimpleFTPSample от Apple). Недостаток каждого метода: - HTTP: тайм-аут, если изображение слишком велико, без возможности возобновления, и нет способа узнать ход загрузки (%)? - FTP: иногда я получаю NSStreamEventErrorOccurred и не знаю почему (при тестировании на устройстве на симуляторе он работает отлично. Так что, возможно, ошибки 3G?)

У меня вопрос, есть ли у вас опыт с этой проблемой (загрузить изображение на сервер)? Какой метод вы рекомендуете? FTP, HTTP или другой метод? Заранее спасибо.

5 ответов

Решение

Наконец, я продолжаю использовать HTTP и использую следующий метод делегата для отслеживания процесса загрузки:

- (void)connection:(NSURLConnection *)connection didSendBodyData:(NSInteger)bytesWritten totalBytesWritten:(NSInteger)totalBytesWritten totalBytesExpectedToWrite:(NSInteger)totalBytesExpectedToWrite

totalBytesWritten / totalBytesExpectedToWrite дает мне процент загрузки.

Быстро, просто и надежно: ASIHTTPRequest и вы можете отслеживать ход загрузки.

Для одного из моих проектов у меня было требование загружать изображения на веб-сервер с различных мобильных устройств (например, iPhone и устройства Android). Я создал сервлет Java, который будет принимать изображение через запрос POST и сохранять его на сервере. Есть также ссылки на клиенты Objective-C (iPhone/iPad) и Java (Android). Учебник здесь

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

Тот факт, что многие сети блокируют трафик FTP, может привести меня к HTTP POST.

Другие вопросы по тегам