ios pdf字节缓存本地

最近app有个需求下载pdf缓存到本地,但是由于一些原因后台只能给我返回这个pdf内容对应的base64加密后的string串,

客户端将string串解码之后写入pdf文件中,下载根据路径判断有没有下载过这个文件:

主要用到以下方法:

获取完整路径:

+ (NSString *)getFullPathWithId:(NSString *)archiveId
{
    //拼接文件全路径,放在Library/Caches目录下
    NSString *caches = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
    NSString *pdfName = [NSString stringWithFormat:@"%@.pdf",[archiveId md5String]];
    NSString *fullpath = [caches stringByAppendingPathComponent:pdfName];//response.suggestedFilename
    return fullpath;
}

根据路径以及string传保存pdf

+ (void)savePDFString:(NSString *)base64String toPath:(NSString *)fullPath
{
    //这边path是包括.pdf在内的完成路径
    if (fullPath.length == 0) {
        return ;
    }
    NSData *data = [MF_Base64Codec dataFromBase64String:base64String];
    [data writeToFile:fullPath atomically:YES];//不需要创建pdf文件,调用此句直接写入该目录下pdf
    //YES是保证文件的写入原子性,就是说会先创建一个临时文件,直到文件内容写入成功再导入到目标文件里.NO是直接写入
}

如果pdf是string串:

        NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值