2013-01-22 106 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 –