我使用名为BlackRaccoon的软件包将文件上传到FTP服务器。我真的很挣扎着一个我根本无法弄清楚的真正基本的代表团概念。
在我的上传类.m文件中,我有一个调用BlackRaccoon上传请求的方法。我使用以下代码:
uploadFile = [BRRequestUpload initWithDelegate: self];
uploadFile.path = @"/filehere.txt";
uploadFile.hostname = @"xxx";
uploadFile.username = @"xxx";
uploadFile.password = @"xxx";
//we start the request
[uploadFile start];
在我的.h文件中,我有以下内容:
@interface myClass : NSObject <BRRequestDelegate>
{
BRRequestCreateDirectory *createDir;
BRRequestDelete * deleteDir;
BRRequestListDirectory *listDir;
BRRequestUpload *uploadFile;
NSData *uploadData;
}
每次编译和运行时,我都会在BlackRaccoon文件中的某处出现错误,例如:
__ 25- [BRStreamInfo openRead:] _ block_invoke [第190行]服务器没有响应。超时。
在获取此错误时,我发现自己在创建读取流的方法中,特别是:
request.didOpenStream = NO;
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, timeout * NSEC_PER_SEC), dispatch_get_local_queue(), ^{
if (!request.didOpenStream && request.error == nil)
{
InfoLog(@"No response from the server. Timeout.");
request.error = [[BRRequestError alloc] init];
request.error.errorCode = kBRFTPClientStreamTimedOut;
[request.delegate requestFailed: request];
[request.streamInfo close: request];
}
});
我完全不知道这一点。我们的服务器已启动并运行,并且我们的Android设备或应用程序(例如“FTP精灵”)没有超时问题。
我很确定问题出在initWithDelegate的东西上。我只是不认为我正确委托,但我不知道为什么。有人有什么想法吗?我知道我需要(id)init某处,但我不知道在哪里或如何。
谢谢!
答案 0 :(得分:0)
刚刚检查了BlackRaccoon Git上的uploadFile函数,我发现在他们的示例中,他们没有alloc
一个BRRequestUpload对象,但是这样称呼它:
uploadFile = [BRRequestUpload initWithDelegate: self];
这可能是您坠机的原因吗?
答案 1 :(得分:0)
请在BRRequest.m
文件中进行一行更改。
在- (id)initWithDelegate:(id<BRRequestDelegate>)aDelegate
功能中。
改变
self.passiveMode = YES;
到
self.passiveMode = NO;
它会起作用....
这种改变对我有用。