1

我想将 url 中的 epub 格式文件保存到 App Document Directory 中。当我在浏览器中点击此 url 时,它会提供一个下载文件,当我在 NSURLConnection 中发送请求时,它会为我提供数据,将这些数据转换为 NSString 后返回 NULL .如何成功保存此文件。

我的代码片段是这样的:-

- (void)viewDidLoad
{
 NSMutableString *str = [[NSMutableString alloc]
initWithFormat:@"http:// url", tagId];<br/>
    NSURL *url = [[NSURL alloc] initWithString:str];
    NSLog(@"URL IS :%@",url);
    requestBook=[[NSURLRequest alloc] initWithURL:url];
    NSLog(@"URL REQUEST :%@",url);
    receivedData = [[NSMutableData data] retain];<br/>     
     connectionDownloadBook =[[NSURLConnection alloc] initWithRequest:requestBook delegate:self];
}

-(void)connectionDidFinishLoading:(NSURLConnection *)connection{
 if(connection==connectionDownloadBook) {
   NSLog(@"%@",connection);
        NSData *bookData = [NSURLConnection sendSynchronousRequest:requestBook returningResponse:nil error:&error];


    NSLog(@"%@",bookData);

   NSString *receivedDataString = [[NSString alloc] initWithData:bookData encoding:NSUTF8StringEncoding];
    NSLog(@"String %@",receivedDataString);
   [self savePDF:bookData];
}

}

- (void)savePDF:(NSData *)pdfContent
{
NSArray *paths = NSSearchPathForDirectoriesInDomains( NSDocumentDirectory, NSUserDomainMask ,YES     );
NSString *documentsDirectory = [paths objectAtIndex:0];

NSString *finalPath = [documentsDirectory stringByAppendingPathComponent:@"myPdf.epub"];
NSLog(@"%@",finalPath);
NSURL *url = [NSURL fileURLWithPath:finalPath];
[pdfContent writeToURL:url atomically:YES];

//    [aWebView loadRequest:[NSURLRequest requestWithURL:url]];
}
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{
NSLog(@"didReceiveData");
 if (connection==connectionDownloadBook)
{
    [receivedData setLength:0];
}
}
    -(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{
NSLog(@"didReceiveResponse");
if (connection==connectionDownloadBook)
{
    [receivedData setLength:0];
}
}
    -(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error{
NSLog(@"didFailWithError");
//NSLog([NSString stringWithFormat:@"Connection failed: %@", [error description]]);
}
4

0 回答 0