我正在尝试使用以下代码将图像从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
凭据才能连接到FTP
并获取ma网址中的图片。
请建议我出路。
答案 0 :(得分:3)
试试这个:
NSURL *url = [NSURL URLWithString:@"ftp://user:password@host:port/path"];
NSData *data = [NSData alloc] initWithContentsOfURL:url];
这里是来自apple dev的SimpleFTPSample。试试吧。
答案 1 :(得分: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
答案 2 :(得分:0)
好吧,你可以用
UIImage *image = [[UIImage alloc] initWithData: [NSData dataWithContentsOfURL:imageURL];
但你不应该这样做因为那将使用同步数据连接,并且很可能暂时冻结你的应用程序。 您应该使用NSURLConnection和相应的委托来异步下载映像。
有关此主题的更多提示,请查看http://developer.apple.com/library/ios/#samplecode/LazyTableImages/Introduction/Intro.html
答案 3 :(得分:0)
只需将NSURLConnection与以“ftp://”开头的路径一起使用即可。 NSURLConnection支持开箱即用的http,https,ftp和文件。