0

我正在尝试使用以下代码将图像从 FTP URL 加载到图像视图中

    NSURL * imageURL = [NSURL URLWithString:@"ftp://50.63.12.12/bpthumb.jpg"];
    NSURLRequest *request = [[NSURLRequest alloc]initWithURL:imageURL];
    UIImage * image = [[[UIImage alloc]initWithData:request]autorelease];
    UIImageView *imgView=[[UIImageView alloc]initWithFrame:CGRectMake(50, 50, 200, 200)];
    [imgView setImage:image];
    [self.view addSubview:imgView];

但它不起作用。

我知道我必须提供我的FTP凭据才能连接到FTPma URL 并获取图像。

请给我建议出路。

4

4 回答 4

3

试试这个:

NSURL *url = [NSURL URLWithString:@"ftp://user:password@host:port/path"];
NSData *data = [NSData alloc] initWithContentsOfURL:url];

这里有一个来自苹果开发的SimpleFTPSample 。试试看 。

于 2012-11-23T10:49:14.163 回答
1

在连接委托 didReceiveAuthenticationChallenge 中尝试这样的事情:

-(void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge{

    NSLog(@"challenged %@",[challenge proposedCredential]);

    if([challenge previousFailureCount]==0){
        NSURLCredential *newCredential;
        newCredential=[NSURLCredential credentialWithUser:@"xxxxxx"
                                                 password:@"xxxx"
                                              persistence:NSURLCredentialPersistenceNone];
        [[challenge sender] useCredential:newCredential
               forAuthenticationChallenge:challenge];

    } else {

        [[challenge sender] cancelAuthenticationChallenge:challenge];
        NSLog(@"Wrong username or password ");
    }


}

AXL

于 2012-11-23T10:47:47.743 回答
0

好吧,你可以使用

UIImage *image = [[UIImage alloc] initWithData: [NSData dataWithContentsOfURL:imageURL];

但是您不应该这样做,因为这将使用同步数据连接,并且很可能会暂时冻结您的应用程序。您应该使用 NSURLConnection 和适当的委托来异步下载图像。

有关此主题的更多提示,请查看http://developer.apple.com/library/ios/#samplecode/LazyTableImages/Introduction/Intro.html

于 2012-11-23T10:49:29.270 回答
0

只需将NSURLConnection与以“ftp://”开头的路径一起使用,它就可以工作。NSURLConnection 支持 http、https、ftp 和开箱即用的文件。

于 2012-11-23T10:51:15.190 回答