博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS AFNetWorking 下载pdf文档
阅读量:6443 次
发布时间:2019-06-23

本文共 2249 字,大约阅读时间需要 7 分钟。

+ (void)downLoadPdf:(NSString *)url pdf_id:(NSString *)pdf_id block:(APIFilePath)pdfFilePath {
    NSMutableDictionary *mPdf_dic = [NSMutableDictionary dictionaryWithDictionary:[Tool getLocalKey:PDFLOCAL_DIC]];
    NSURL *URL = [NSURL URLWithString:url];
    NSURLRequest *request = [NSURLRequest requestWithURL:URL];
   
    NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
    AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration];
   
    NSURLSessionDownloadTask *downloadTask = [manager downloadTaskWithRequest:request progress:nil destination:^NSURL *(NSURL *targetPath, NSURLResponse *response) {
       
        NSURL *documentsDirectoryURL = [[NSFileManager defaultManager] URLForDirectory:NSDocumentDirectory inDomain:NSUserDomainMask appropriateForURL:nil create:NO error:nil];
        NSLog(@"###%@", targetPath);  //原始文件
        NSLog(@"**%@", [response suggestedFilename]);  //文件名
        return [documentsDirectoryURL URLByAppendingPathComponent:[response suggestedFilename]];
       
    } completionHandler:^(NSURLResponse *response, NSURL *filePath, NSError *error) {
        NSLog(@"File downloaded to: %@", filePath);//下载成功后本地保存id以及文件路径
        NSString *stringUrl = [filePath absoluteString];
        mPdf_dic[pdf_id] = stringUrl;
        NSDictionary *pdfDic = [NSDictionary dictionaryWithDictionary:mPdf_dic];
        [Tool saveLocalvalue:pdfDic key:PDFLOCAL_DIC];
        pdfFilePath(stringUrl);
    }];
    [downloadTask resume];
}
 
*********************************************************************************************
查看文档时判断本地是否已经下载
#pragma mark - read
- (void)read {
    //本地已下载pdf文件
    NSDictionary *pdfDic = [Tool getLocalKey:PDFLOCAL_DIC];
    if (pdfDic == nil) {
        [Tool saveLocalvalue:pdfDic key:PDFLOCAL_DIC];
    }
    //文件路径
    NSString *filePathLocal;
    NSString *fileUrl = @"pdf的URL";
    NSString *fileKey = @"1471509244417_1471509259460";
    NSArray *keys = [pdfDic allKeys];
    BOOL isDownload = NO; //是否已经下载
    for (NSString *key in keys) {
        if ([key isEqualToString:fileKey]) {
            isDownload = YES;
            break;
        } else {
            isDownload = NO;
        }
    }
    if (isDownload) {
        filePathLocal = pdfDic[fileKey];
        [self openPdf:filePathLocal];
    } else {
         [WYAPI downLoadPdf:fileUrl pdf_id:fileKey block:^(NSString *filePath) {
             [self openPdf:filePath];
         }];
    }
}

转载于:https://www.cnblogs.com/tian-sun/p/5909880.html

你可能感兴趣的文章
mybatis基础(一)
查看>>
Python的Django框架中的Context使用
查看>>
我的友情链接
查看>>
linux常用命令
查看>>
Docker在Windows系统下的安装及简单使用介绍
查看>>
CentOS用yum安装X Window
查看>>
gpfs 修改 副本数
查看>>
Ubuntu16.4安装Wordpress
查看>>
模块和包
查看>>
socket编程总结
查看>>
逻辑回归模型(LR)
查看>>
[读书笔记]JavaScript 闭包(Closures)
查看>>
Django restfulframework 开发相关知识 整理
查看>>
linux信息查看手记
查看>>
Delphi考虑sql注入 QuotedStr
查看>>
SpringBoot学习四:整合Mybatis分页插件 PageHelper
查看>>
java集成jpush实现客户端推送
查看>>
Swoole WebSocket 的应用
查看>>
219. 单页应用 会话管理(session、cookie、jwt)
查看>>
【比赛】百度之星2017 初赛Round B
查看>>