美文网首页
IOS 数据库压缩文件后AFN 表单文件上传压缩数据库

IOS 数据库压缩文件后AFN 表单文件上传压缩数据库

作者: 真爱要有你才完美 | 来源:发表于2018-03-30 11:01 被阅读76次

    1.首先 需要导入 大神写好的 第三方的 数据流的压缩库

    https://github.com/DreamHeader/LFCGzipUtility

    怎么使用下面都有

    2.下面讲述过程

    这是我们上传文件的接口文档 接口返回的类型参数 这个上面是我们的上传文件的URL 这是数据库的路径 这是用AFN上传的所有方法实现

    3.切记 上传压缩的数据库文件的时候  不知道大佬们做没做过。 终于搞定了。。 以后大家 记得 用表单形式上传数据库压缩文件的时候 不要把数据库直接压缩拿着压缩后的zip文件再 转成data去上传 会出问题,要先把数据库转成data 再拿着这个data进行数据流压缩 然后 AFN 表单上传 就可以了

    4.我之前一直用SSZipArchive 去先压缩数据库 再转成data  这都是错误  数据库不能这样搞 会把数据库损坏

    5.下载文件的代码

    这个代码中 会发现 有个[DB createDatabase]; 这个方法 我发现你现在过来你的data 写给原来的数据库后,你如果直接 [DB queryUserUserinfo]来查用户的个人信息 会报错的 信息【I/o s什么数据库打不开啊 之类的 】

    特殊:这里又发现了一个问题 就下载以后的数据库文件 你无论怎么样

    我这边本地要维护一个数据库记录用户的信息 然后有上传文件功能 我上传确定是成功了, 然后现在有个问题是 我现在添加一些信息后 上传成功 这时候 如果我把APP删除了 我执行 下载的数据库文件是对的数据 然后 我如果是重新启动APP下载的数据库文件的数据 我测试了下 把他创建到一个另外的路径 我拉出来 发现数据是对的 但是写到那个本地的数据库后 就数据还是上一次的数据 最可笑的是 我执行了

                  NSFileManager *fileManager = [NSFileManager defaultManager];

                BOOL existed = [fileManager removeItemAtPath:ReaLDbFilePath error:nil];

    删除原来数据库文件的方法

    最后解决是

       NSFileManager *fileManager = [NSFileManager defaultManager];

     NSString *cachePath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];

                    [fileManagerremoveItemAtPath:cachePatherror:nil];

    这样做的原因在与:

    我下载的时候是先指定到cache路径下,但是缓存的问题 你下载的数据不知道什么情况 你把这个路径的数据转成data 写到你的数据库下  就还是你上次的文件数据  你执行清楚这个cache下的缓存以后 就可以了。怀疑是下载到指定路径的时候 因为路径下文件存在了所以没有把最新的数据弄下来。这个时候你又拿下载指定的路径的data去写入数据库 肯定就出问题了

    相关文章

      网友评论

          本文标题:IOS 数据库压缩文件后AFN 表单文件上传压缩数据库

          本文链接:https://www.haomeiwen.com/subject/tkgbcftx.html