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];

しかし、それは機能していません。

ma URLFTPに接続して画像を取得するには、資格情報を提供する必要があることを知っています。FTP

抜け道を教えてください。

4

4 に答える 4

3

これを試してください:

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

Apple devの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

「ftp://」で始まるパスでNSURLConnectionを使用するだけで機能します。NSURLConnection は、すぐに http、https、ftp、およびファイルをサポートします。

于 2012-11-23T10:51:15.190 に答える