当我尝试使用 NSURLSession
通过 FTP 上传文件时,我遇到了权限问题。但是,在尝试使用 Core Foundation
框架时,文件并未上传,而是使用我在代码中提供的名称创建了一个文件,即使没有遇到任何权限问题。对于两者,我都传递相同的凭据。如果有人想看代码,请告诉我,我会上传它。我也想添加暂停和恢复功能。所以我没有使用任何库,即使我想自己实现它,以便我可以了解。
最佳答案
为了将文件上传到 FTP 服务器,不能使用 NSURLConnection,而是使用 SCRFTPConnection。您需要包含 CFNetwork 框架。另外,下面是从 Github 下载 SCRFTPRequest.h 和 SCRFTPRequest.m 文件的链接
https://github.com/Hackmodford/SCRFTPRequest
仅复制从 Github 下载的上述 zip 文件中的 .h 和 .m 文件,并将其添加到您的项目中。
//在您的 View Controller 的 .H 文件中
导入“SCRFTPRequest.h”文件并添加委托(delegate),
//在您的 View Controller 的 .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]);
}
关于ios - 将文件上传到ftp服务器时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22171199/