Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- How to Download XML file from FTP in iPhone
- -(void) downLoad
- {
- CFStringRef UpGrdURL=CFSTR("ftp://webaddress/abc.xml");
- CFURLRef requestURL=CFURLCreateWithString(kCFAllocatorDefault,UpGrdURL,NULL);
- CFURLRef requestLocalFile=CFURLCreateWithFileSystemPath(NULL, CFSTR("abc.xml"),
- kCFURLPOSIXPathStyle, false);
- CFReadStreamRef readStream=CFReadStreamCreateWithFTPURL(kCFAllocatorDefault,requestURL);
- CFWriteStreamRef writeStream=CFWriteStreamCreateWithFile(kCFAllocatorDefault,requestLocalFile);
- CFWriteStreamOpen (writeStream);
- if (CFWriteStreamGetStatus(writeStream)==kCFStreamStatusOpen) {
- UIAlertView * alertView = [[UIAlertView alloc] initWithTitle: @"Information box."
- message: [NSString stringWithFormat:@"(CFWriteStreamOpen : kCFStreamStatusOpen."]
- delegate: nil cancelButtonTitle: @"OK" otherButtonTitles: nil];
- [alertView show];
- [alertView release];
- }
- MyStreamInfo XX;
- XX.readStream=readStream;
- XX.writeStream=writeStream;
- CFStreamClientContext CTX = { 0, &XX, NULL, NULL, NULL };
- CFStringRef UserName=CFSTR("******");
- CFStringRef PassWord=CFSTR("******");
- CFReadStreamSetProperty (readStream,kCFStreamPropertyFTPUserName,UserName);
- CFReadStreamSetProperty (readStream,kCFStreamPropertyFTPPassword,PassWord);
- CFReadStreamSetProperty (readStream,kCFStreamPropertyFTPUsePassiveMode,NO);
- // CFReadStreamOpen (readStream);
- //CFReadStreamSetClient(readStream,kCFStreamEventHasBytesAvailable|kCFStreamEventErrorOccurred, readCallBack,&CTX);
- CFReadStreamSetClient(readStream, kCFStreamEventHasBytesAvailable, [self readCallBack:readStream eventType:kCFStreamEventHasBytesAvailable clientCallBackInfo:&CTX], &CTX);
- }
- -(void) readCallBack:(CFReadStreamRef)stream eventType:(CFStreamEventType)eventType clientCallBackInfo:(void *)clientCallBackInfo
- {
- char* buffer[1024];
- CFIndex bytes_recvd; //bytes read
- int recv_len = 0;
- int total_size;
- //CFIndex bytesWritten;
- //int totalBytesWritten;
- //CFWriteStreamRef writeStream;
- UInt8 buf[4096];
- bytes_recvd = CFReadStreamRead(stream, buf + recv_len, 4096);
- while(recv_len < total_size && recv_len < sizeof(buffer)) {
- bytes_recvd = CFReadStreamRead(stream, buf + recv_len, 4096);
- NSLog(@"total bytes are %d", bytes_recvd);
- }
- recv_len = bytes_recvd + recv_len;
- }
Add Comment
Please, Sign In to add comment