views:

420

answers:

4

In my iPhone application I need to upload images to a server. I don't worry much about security and stuffs, just need a fast and reliable method. I can embed my image data on the HTTP post request, or I can create a FTP connection to the server (using the SimpleFTPSample from Apple). The disadvantage of each method is: - HTTP: time out if image too big without way of resuming, and no way to know the upload progress (%)? - FTP: sometimes I got NSStreamEventErrorOccurred and don't know why (when tested on device, on simulator it works great. So maybe 3G errors?)

My question is, do you have any experience with this problem (upload image to server)? What method do you recommend? FTP, HTTP or other method? Thanks in advance.

A: 

The fact that many networks block FTP traffic would steer me towards HTTP POST.

ceejayoz
A: 

A third option would be, if you control the destination server, is to create your own protocol to send data. That could get you the flexibility your desire at the cost of having to deal with the lower level features yourself.

Epsilon Prime
A: 

Fast, Easy & reliable: ASIHTTPRequest and you can track upload progress.

mracoker
A: 

I finally continue to use HTTP, and use the following delegate method to track upload progress:

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

totalBytesWritten / totalBytesExpectedToWrite gives me the upload percentage.

iamj4de