从服务器下载pdf文件,将其保存在ApplicationSupport目录中。 iOS版

时间:2011-06-14 07:51:59

标签: ios pdf download nsurlconnection

我是iOS开发的新手,我想知道如何从服务器下载文件,并将其保存在我的Application Support文件夹中。我想将它保存为.pdf文件,以便能够在UIWebView中显示它。

在不同网站上经过很长一段时间后,我想我应该使用NSURLConnection(异步)来下载它。或NSData(我已经尝试过,但它没有用)。

所以,有人可以帮助我,通过向我展示一个示例代码?

非常感谢你:)

2 个答案:

答案 0 :(得分:2)

请查看此S.O. question以获取有关如何操作的示例。

此示例使用ASIHTTPRequest,它是NSURLRequestNSURLConnection的替代方案。我强烈建议你使用这个框架,这将使你的生活更轻松。

如果您真的愿意使用NSURLRequestNSURLConnection,请参阅this other topic

答案 1 :(得分: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];
         }
     }
 }];