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.