2014-03-04 218 views
0

雖然我試圖通過FTP上傳文件使用NSURLSession我面臨權限問題。但在使用Core Foundation框架文件進行嘗試時,它並未上傳,而是使用代碼中提供的名稱創建了一個文件,即使沒有面臨任何權限問題。對於我都傳遞相同的憑據。如果有人想看代碼,請讓我知道我會上傳它。我想添加暫停和恢復功能。所以我沒有使用任何庫,即使我想自己實現它,以便我可以瞭解。上傳文件到ftp服務器時遇到問題

+0

您可以使用CFNetwork框架,並從github添加SCRFTPRequest.h和SCRFTPRequest.m文件到您的項目上傳文件到FTP服務器。 – Funny

+0

我應該爲你添加代碼嗎? – Funny

+0

@Dream當然,你可以。這將是非常可觀的。謝謝。 – Exploring

回答

1

爲了將文件上傳到FTP服務器,不能使用NSURLConnection,而使用SCRFTPConnection。您需要包含CFNetwork框架。此外,以下是從Github上,從你從GitHub下載以上zip文件下載SCRFTPRequest.h和SCRFTPRequest.m文件

https://github.com/Hackmodford/SCRFTPRequest

僅複製h和.m文件,並在你的項目中添加它的鏈接。

//在您的視圖控制器

導入 「SCRFTPRequest.h」 文件的.H文件,並添加委託,

//在.m文件您的視圖控制器

-(void)uploadFileUsingSCRFTPRequest{ 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0]; 

    NSString *file_name=[NSString stringWithFormat:@"TEST.txt"]; 
    NSString *myPathDocs = [documentsDirectory stringByAppendingPathComponent:file_name]; 

    SCRFTPRequest *ftpRequest = [[SCRFTPRequest alloc] initWithURL:[NSURL URLWithString:@"ftp://your_url/"] toUploadFile:myPathDocs]; 

    ftpRequest.username = @"username"; 
    ftpRequest.password = @"password"; 

    ftpRequest.delegate = self; 

    [ftpRequest startRequest]; 

} 

- (void)ftpRequestDidFinish:(SCRFTPRequest *)request { 
    NSLog(@"Upload finished."); 
} 

- (void)ftpRequest:(SCRFTPRequest *)request didFailWithError:(NSError *)error { 

    NSString *str=[NSString stringWithFormat:@"Upload failed: %@", [error localizedDescription]]; 
    NSLog(@"Upload failed: %@", [error localizedDescription]); 

} 
+0

感謝您的幫助。我會檢查並讓你知道。 – Exploring