zoukankan      html  css  js  c++  java
  • iOS AFNetWorking 下载pdf文档

    + (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];
             }];
        }
    }
  • 相关阅读:
    Hibernate提供的内置标识符生成器
    ThreadLocal解析
    save()/saveOrUpdate()/merge()的区别
    Hibernate中主键生成策略
    session/SessionFactory线程非安全和线程安全
    load/get延迟加载和及时加载
    最长公共子序列:递归,非递归实现
    c语言,递归翻转一个单链表,c实现单链表
    最长递增子序列(Longest Increase Subsequence)
    求一串数字中——和最大的连续子序列; 求一串数字差值的绝对值最小的两个数字
  • 原文地址:https://www.cnblogs.com/tian-sun/p/5909880.html
Copyright © 2011-2022 走看看