2013-01-22 73 views
2

我是Objective-C和iOS的新手。我正在使用SimpleFTPSample来制作上传和下载文件到ftp的测试应用程序。我需要上传两个ftp文件,但在SimpleFTPSample中只能上传一个...所以我需要添加到源代码中?我想必须有一些循环,但我不知道在哪里...在FTP上传多个文件

这是我的代码,我添加了()但我知道这是错误的,但我没有任何想法。谢谢你的帮助。

success = (url != nil); 

NSMutableArray *listFile = [[NSMutableArray alloc] initWithCapacity:2]; 
[listFile addObject:[[[NSBundle mainBundle]resourcePath]stringByAppendingPathComponent:@"1.txt"]]; 

[listFile addObject:[[[NSBundle mainBundle]resourcePath]stringByAppendingPathComponent:@"2.txt"]]; 


for (int i= 0; i <= 1; i++) { 

    self.filePath = [listFile objectAtIndex:i]; 

url = [NSURL URLWithString:@"ftp://[email protected]"]; 


    url = CFBridgingRelease(
          CFURLCreateCopyAppendingPathComponent(NULL, (__bridge CFURLRef) url, (__bridge CFStringRef) [self.filePath lastPathComponent], false)); 
    //       ); 
    success = (url != nil); 


    self.ftpFileStream = [NSInputStream inputStreamWithFileAtPath:_filePath]; 
    assert(self.ftpFileStream != nil); 

    [self.ftpFileStream open]; 

    self.ftpNetworkStream = CFBridgingRelease(
               CFWriteStreamCreateWithFTPURL(NULL, (__bridge CFURLRef) url) 
              ); 
    assert(self.ftpNetworkStream != nil); 
    self.ftpNetworkStream.delegate = self; 


    [self.ftpNetworkStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode]; 
     [self.ftpNetworkStream open]; 

    } 

} 
+0

你尝试过你代码没有for循环和文件上传? – MuhammadBassio

+0

您知道如何上传一个文件并认真询问如何上传两个文件?如果你知道如何烤蛋糕,你是否要问怎么烤两个蛋糕?简单的做两次(或n次),你会上传两个(或n)文件。 – Mecki

+0

是的,如果我删除for循环一个文件成功上传。如果我尝试两次执行相同的操作,使用不同的路径 - 只有第一个文件上传,它是空的。 – seidju

回答

3

我相信你可以用其他有效的方式上传多个文件任务。

1)使用AFNetworking

,另一个选择是

2)ASIHTTPRequest's ASINetworkQueue

注:ASIHTTPRequest不再保持...编码快乐:)

+0

谢谢你的回答,但我应该如何使用AFNrtworking与FTP一起工作,所有的例子都与http一起使用,我应该用url中的“ftp”替换“http”吗? – seidju

+0

是与正确的ftp网址。同上传文件关闭HTTP,除了以http://为前缀,你有ftp .... //检查此http://www.cs.tut.fi /~jkorpela/ftpurl.html –