2011-01-09 8 views
2

私は約1500画像のURLを取り込み、これらの画像をiphoneの文書ディレクトリに保存したいですか? ...それを行うにはどんなアプローチを提案してください画像を文書ディレクトリに保存する

おかげ

+0

私はめったにここに私のクエリを投稿しません....それはまた、以前の私に助言された...私はそれが不条理な音を知っているが、どのように受け入れることを教えてください? – devaditya

+0

緑色のチェックマークをクリックします。 – Paul

+0

白いチェックマークをクリックしてください – user2189388

答えて

3

すべてのURLをダウンロードして、一つのファイルに書き込むための方法:

 - (BOOL) downloadFilefromCDN :(NSString*)filename { 

     NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://example.com/getlinks.php"]]]; 
     [request setHTTPMethod:@"GET"]; 

     NSError *err = nil; 
     NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:&err]; 
     if (err != nil) { return FALSE; } // Download error 

     NSArray *searchPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *path = [[searchPath objectAtIndex:0] stringByAppendingString:[NSString stringWithFormat:@"/%@",filename]]; 
    if ([data writeToFile:path atomically:YES] != FALSE) { 
     return TRUE; 
    } else { 
     return FALSE; // Error 
    } 

    } 

あなたは含めて答えを返すスクリプトを記述する必要がありますあなたがそのファイルに書き込むことができるように1400のリンク。

NSArray *によって与えられたすべてのイメージをドキュメントディレクトリにダウンロードする方法。

- (id) downloadFilefromCDN :(NSString*)filename { 

    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://example.com/%@",filename]]]; 
    [request setHTTPMethod:@"GET"]; 

    NSError *err = nil; 
    NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:&err]; 
    if (err != nil) { return FALSE; } 

    return data; 

} 

- (NSArray*) downloadFilesfromCDN :(NSArray*)filenames { 

    NSMutableArray *mfiles = [[NSMutableArray alloc] init]; 

    BOOL error = FALSE; 

    for (NSString* filename in filenames) { 
     NSArray *searchPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
     NSString *path = [[searchPath objectAtIndex:0] stringByAppendingString:[NSString stringWithFormat:@"/%@",filename]]; 
      id file = [self downloadFilefromCDN:filename]; 
      if ([file isKindOfClass:[NSData class]]) { 
     if ([(NSData*)file writeToFile:path atomically:YES] != FALSE) { 
      [mfiles addObject:path]; 
     } else { 
      error = TRUE; // Writing of file failed 
     } 
      } else { 
        error = TRUE; // Download failed 
      } 
    } 

    if (error) { 
      // Handle error 
    } 

    [filenames release]; 

    return [NSArray arrayWithArray:mfiles]; 
} 

注:純粋なファイル名をNSArrayに読み込む必要があります。あなたは異なる起源を持っている場合は

[NSString stringWithFormat:@"%@",filename] 

[NSString stringWithFormat:@"http://example.com/%@",filename] 

を変更して、完全なパス(http://example.com/file1.png,http://example.com/file2.pngを読みます)をNSArrayに追加します。

完了。それが助けてくれることを願って。そんなに編集のために申し訳ありません

:S

+0

これは動作しますが、時間がかかります。このUIImage * image = [[UIImage alloc] initWithData:[NSURL URLWithString:@ "http:// www .example.com/images/logo.png "]]]; – devaditya

+0

あなたのやりたいことによって異なります。ファイルをダウンロードしてそれらの完全なリストを取得し、それらをUIImagesに読み込みたい場合は、私の方法が完璧です。あなたがすべてのパスを知っていて、それらをUIImagesに読んでほしいなら、あなたのものは完璧です。 – Paul

関連する問題