收藏
评论

base64图片存本地(得到本地路径)

需求:

    目前需要在一个页面中加载使用很多image组件,加载图片,采用的是[data:image..base64,...]格式的图片直接放在src里.但在真机测试时,可以导致wxml里内容太多,小程序直接无响应.所以想着把 从服务端传来的base64格式的图片转成本地文件路径后,再放到image组件的src里.

解决:

    在社区里查了好多帖子,发现都是提此类问题,但均没有结果.后来在网上找到了解决方法,现分享如下:


    var base64 = "data:image...";//base64格式图片

    var imgPath = wx.env.USER_DATA_PATH+'/页面名称'+'你的图片名'+ '.png';

    //如果图片字符串不含要清空的前缀,可以不执行下行代码.

    var imageData = base64.replace(/^data:image\/\w+;base64,/, "");

    

    var fs = wx.getFileSystemManager();


    fs.writeFileSync(imgPath, imageData, "base64");


 至此就可以用imgPath(图片的本地文件路径)进行后继大家想要的操作了!

 注意用完后,及时清理本地文件.释放储存空间.


最后:发现社区中已有此种解决方法了,之前没找到.

最后一次编辑于  2018-11-09  (未经腾讯允许,不得转载)
复制链接收藏赞 4

11 个评论

  • 🎭Tiny
    🎭Tiny
    2018-10-28

     mark

    2018-10-28
    赞同
    回复
  • 小六
    小六
    2018-10-30

    你这写的是本地缓存文件,不叫临时文件吧

    2018-10-30
    赞同
    回复 1
    • 治辰科技于鲁宁
      治辰科技于鲁宁
      2018-10-30

      对,用词有误.应为[生成本地文件]

      2018-10-30
      回复
  • tanw😏
    tanw😏
    2018-11-08

    非常感谢!找了这么久终于找到了这个回答!谢谢

    2018-11-08
    赞同
    回复
  • Gavin
    Gavin
    2018-11-16

    mark

    2018-11-16
    赞同
    回复
  • 如意如意
    如意如意
    01-23

    您好,想问一下wx.env.USER_DATA_PATH这个是什么路径?

    01-23
    赞同
    回复 1
    • 治辰科技于鲁宁
      治辰科技于鲁宁
      03-15

      微信提供了一个用户文件目录给开发者,开发者对这个目录有完全自由的读写权限。通过wx.env.USER_DATA_PATH可以获取到这个目录的路径。

      03-15
      回复
  • 青儿
    青儿
    05-11

    怎样清理writeFile文件呀

    05-11
    赞同
    回复 1
    • 治辰科技于鲁宁
      治辰科技于鲁宁
      07-24
      使用fs.unlinkSync()清理
      07-24
      回复
  • A 搜券助手
    A 搜券助手
    05-20

    请问用writeFile写入的本地用户文件,怎么才能清除啊,文档中写的是无法清除的啊,你是怎么做到的?

    05-20
    赞同
    回复 1
    • 治辰科技于鲁宁
      治辰科技于鲁宁
      07-24
      使用fs.unlinkSync()清理
      07-24
      回复