美文网首页
url 中包含中文AFN 会下载失败

url 中包含中文AFN 会下载失败

作者: dongfang | 来源:发表于2019-11-18 16:31 被阅读0次

    项目中涉及附件上传管理
    当遇见附件下载时,本地做了缓存处理,节约流量
    例如:
    选取的文件名为:项目开发和对接状态_20191118.xlsx
    以文件名为key ,缓存到本地

    上传成功后
    获取文件的服务器链接为
    http://192.168.../upload/20191118/项目开发和对接状态_20191118.xlsx,

    由于包含中文,所以使用AFN 会下载失败,所以需要将中文编码处理

    处理后变成这个样子
    http://192.168./upload/20191118/%E6%B2%B3%E5%A7%86%E6%B8%A1CRM_%E9%A1%B9%E7%9B%AE%E5%BC%80%E5%8F%91%E5%92%8C%E5%AF%B9%E6%8E%A5%E7%8A%B6%E6%80%81_20191118.xlsx

    AFN下载成功会缓存到本地路径 是以编码后的名字为路径存储的
    targetPath= >file:///var/mobile/Containers/Data/Application/E009F2B9-A29A-4CDC-B1F0-C5921398C512/Library/Caches/%E6%B2%B3%E5%A7%86%E6%B8%A1CRM_%E9%A1%B9%E7%9B%AE%E5%BC%80%E5%8F%91%E5%92%8C%E5%AF%B9%E6%8E%A5%E7%8A%B6%E6%80%81_20191118.xlsx

    当以中文的文件名为key ,拼接缓存路径后,打印路径为下
    cachesPath => /var/mobile/Containers/Data/Application/E009F2B9-A29A-4CDC-B1F0-C5921398C512/Library/Caches/项目开发和对接状态_20191118.xlsx

    用系统的文件存储方法来判断
    查看本地是否存在该文件
    结果居然存在
    系统认为 targetPath == cachesPath

    之前做缓存时还考虑以中文为key 还时以编码为key 缓存
    看来是想多了
    猜测应该是系统给优化了,各位有啥见解,评论区留言

    相关文章

      网友评论

          本文标题:url 中包含中文AFN 会下载失败

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