2011-06-14 101 views
1

我是iOS開發的新手,我想知道如何從服務器下載文件,並將其保存在我的應用程序支持文件夾中。我想保留它作爲.pdf文件,以便能夠在UIWebView中顯示它。從服務器下載pdf文件,將其保存在ApplicationSupport目錄中。 iOS

經過很長時間在diferents網站,我想我應該使用NSURLConnection(異步)來下載它。或者NSData(我已經嘗試過了,但沒有奏效)。

那麼,有人可以幫助我,通過向我展示一個這樣的示例代碼?

太謝謝你了:)

+0

什麼是您正在下載的文件的原始格式?是pdf嗎? – 2011-06-14 07:55:32

+0

是的!該文件存在於服務器上;) – MosHa 2011-06-14 08:05:57

回答

2

看一看這個S.O. question對於如何做到這一點的例子。

本示例使用ASIHTTPRequest,這是NSURLRequestNSURLConnection的替代方案。我強烈建議你使用這個框架,這會讓你的生活更輕鬆。

如果您確實願意使用NSURLRequestNSURLConnection,請參閱this other topic

0
[self.productListArray enumerateObjectsUsingBlock:^(NSDictionary *productDictionary, NSUInteger idx, BOOL *stop) 
{ 

    NSFileManager *fileManger=[NSFileManager defaultManager]; 

    if(![fileManger fileExistsAtPath:pdfString]) 
    { 
     dispatch_async(serialQueue, ^() 
         { 
          NSURLRequest *request = [[NSURLRequest alloc]initWithURL:url cachePolicy:NSURLCacheStorageNotAllowed timeoutInterval:120]; 

          NSURLResponse *response = nil; 
          NSError *connectionError = nil; 

          NSData *data = [NSURLConnection sendSynchronousRequest:request 
                   returningResponse:&response 
                      error:&connectionError]; 

          if(connectionError) 
          { 
           NSLog(@"Pdf Connection Error==>%@",connectionError.userInfo); 
           [AMSharedClass showAlertMessge:@"Request timeout"]; 

          } 
          else if ([response.MIMEType isEqualToString:@"application/pdf"]) 
          { 
           NSLog(@"pdfFilePathURLString==>%@",pdfString); 

           [data writeToFile:pdfString atomically:YES]; 
          } 
          else 
          { 
           [AMSharedClass showAlertMessge:@"Pdf not found."]; 
           if (idx+1 == [self.productListArray count]) 
           { 
            [self.btnSetting setEnabled:NO]; 
           } 
          } 
          if (idx+1 == [self.productListArray count]) 
          { 
           [[[AMSharedClass object]sharedHUD]hideOnWindow]; 
           self.pdfURLString = [self joinPDF:self.productFilePathUrlArray WithDetails:self.pdfInfoArray]; 
           [self initialConfiguration]; 
           NSLog(@"%@",self.productFilePathUrlArray); 
          } 
         }); 

     // Long running task 

    } 
    else 
    { 
     if (idx+1 == [self.productListArray count]) 
     { 
      self.pdfURLString = [self joinPDF:self.productFilePathUrlArray WithDetails:self.pdfInfoArray]; 
      [self initialConfiguration]; 
      NSLog(@"%@",self.productFilePathUrlArray); 
      [[[AMSharedClass object]sharedHUD]hideOnWindow]; 
     } 
    } 
}]; 
相關問題