2013-11-15 6 views
6

मैं एक यूआरएल से एक छवि कैसे डाउनलोड करूं, और क्या उद्देश्य-सी का उपयोग कर कंप्यूटर पर सहेजा गया है? यह मैं अब तक क्या मिला है:मैं एक यूआरएल से एक छवि कैसे डाउनलोड करूं और इसे अपने कंप्यूटर पर सहेजूं?

NSString *documentsDirectoryPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; 

UIImage *imageFromURL = [self getImageFromURL:@"https://www.google.com/images/srpr/logo11w.png"]; 

[self saveImage:imageFromURL withFileName:@"Google Logo" ofType:@"png" inDirectory:documentsDirectoryPath]; 

UIImage *imageFromWeb = [self loadImage:@"Google Logo" ofType:@"png" inDirectory:documentsDirectoryPath]; 

Xcode UIImage के बारे में शिकायत, NSImage साथ बदलने के लिए कोशिश कर रहा। यह एक अविकसित पहचानकर्ता 'स्वयं' के बारे में भी शिकायत करता है।

मुझे इसे करने के लिए एक HTTP कॉल करने की आवश्यकता है। मुझे यह बताएं कि मैं 5 हूं।

+1

तो यह एक मैक ओएस एक्स प्रोग्राम है? – Raptor

+0

हां, मैं मैक ओएस एक्स कंप्यूटर की हार्ड ड्राइव में सहेजने की कोशिश कर रहा हूं। –

+0

क्या यह एक आईओएस ऐप का उपयोग करके किया जाना है (आपने आईओएस के साथ सवाल टैग किया है) या यह मैक ऐप के साथ किया जाना है? – rmaddy

उत्तर

6

छवि निर्देशिका में दस्तावेज़ को सहेजने के लिए कोड यहां दिया गया है।

-(void)saveImagesInLocalDirectory 
{ 
     NSString * documentsDirectoryPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; 
      NSString *imgName = @"image.png"; 
      NSString *imgURL = @"www.example.com/image/image.png"; 
      NSFileManager *fileManager = [NSFileManager defaultManager]; 
      NSString *writablePath = [documentsDirectoryPath stringByAppendingPathComponent:imgName]; 

      if(![fileManager fileExistsAtPath:writablePath]){ 
       // file doesn't exist 
       NSLog(@"file doesn't exist"); 
       if (imgName) { 
        //save Image From URL 
        [self getImageFromURLAndSaveItToLocalData:imgName fileURL:imgURL inDirectory:documentsDirectoryPath]; 
       } 
      } 
      else{ 
       // file exist 
       NSLog(@"file exist"); 
      } 
} 

-(void) getImageFromURLAndSaveItToLocalData:(NSString *)imageName fileURL:(NSString *)fileURL inDirectory:(NSString *)directoryPath { 
    NSData * data = [NSData dataWithContentsOfURL:[NSURL URLWithString:fileURL]]; 

    NSError *error = nil; 
    [data writeToFile:[directoryPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@", imageName]] options:NSAtomicWrite error:&error]; 

    if (error) { 
     NSLog(@"Error Writing File : %@",error); 
    }else{ 
     NSLog(@"Image %@ Saved SuccessFully",imageName); 
    } 
} 

और यह एक विधि कोड है ..

-(void)saveImagesInLocalDirectory 
{ 
     NSString * documentsDirectoryPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; 
      NSString *imgName = @"image.png"; 
      NSString *imgURL = @"www.example.com/image/image.png"; 
      NSFileManager *fileManager = [NSFileManager defaultManager]; 
      NSString *writablePath = [documentsDirectoryPath stringByAppendingPathComponent:imgName]; 

      if(![fileManager fileExistsAtPath:writablePath]){ 
       // file doesn't exist 
       NSLog(@"file doesn't exist"); 
        //save Image From URL 
        NSData * data = [NSData dataWithContentsOfURL:[NSURL URLWithString: imgURL]]; 

        NSError *error = nil; 
        [data writeToFile:[documentsDirectoryPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@", imgName]] options:NSAtomicWrite error:&error]; 

        if (error) { 
          NSLog(@"Error Writing File : %@",error); 
        }else{ 
          NSLog(@"Image %@ Saved SuccessFully",imgName); 
        } 
      } 
      else{ 
       // file exist 
       NSLog(@"file exist"); 
      } 
} 
+0

आपकी मदद के लिए बहुत बहुत धन्यवाद, लेकिन मैं एक पूर्ण नौसिखिया हूं। कस्टम तरीकों का उपयोग किये बिना इसे करने का कोई तरीका है? यदि नहीं, तो यह एक बड़ा सौदा नहीं है, मैं यह समझने के बाद भी जवाब स्वीकार करूंगा कि यह कैसे काम करता है। –

+0

विधि एक बड़ा सौदा नहीं है जिसे मैंने अभी अपने ऐप में एब्स्ट्रक्शन bcoz के लिए बनाया है, मैं इस विधि को कई बार उपयोग कर रहा हूं। आप पहली विधि में दूसरा विधि कोड जोड़ सकते हैं ठीक है। – Dilip

+0

ठीक है, मुझे इसे एक स्पिन दें, एक बार जब मैं इसे प्राप्त कर दूं, तो मैं वापस आऊंगा और आपका जवाब स्वीकार करूंगा। –

0

यह मेरी हल है!

+(BOOL)downloadMedia :(NSString*)url_ :(NSString*)name{ 
    NSString *stringURL = url_; 
    NSURL *url = [NSURL URLWithString:stringURL]; 
    NSData *urlData = [NSData dataWithContentsOfURL:url]; 
    if (urlData) 
    { 
     NSArray  *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
     NSString *documentsDirectory = [paths objectAtIndex:0]; 

     NSString *filePath = [NSString stringWithFormat:@"%@/%@", documentsDirectory,name]; 
     [urlData writeToFile:filePath atomically:YES]; 
     return YES; 
    } 
    return NO; 
} 

+(UIImage*)loadMedia :(NSString*)name{ 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,  NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0]; 
    NSString *getImagePath = [documentsDirectory stringByAppendingPathComponent:name]; 
    UIImage *img_ = [UIImage imageWithContentsOfFile:getImagePath]; 
    return img_; 
} 
संबंधित मुद्दे