问题:base64图片不能直接用wx.saveImageToPhotosAlbum保存到手机相册

解决:

先用fs.writeFile写入本地文件,再wx.saveImageToPhotosAlbum保存到手机相册

saveimg:function(){
var _this=this
//获取文件管理器对象
const fs = wx.getFileSystemManager() //文件保存路径
const Imgpath = wx.env.USER_DATA_PATH + '/qrcodeImg' + '.png'
//_this.data.imgsrc base64图片文件
let imageSrc = _this.data.imgsrc.replace(/^data:image\/\w+;base64,/, '') //写入本地文件
fs.writeFile({
filePath: Imgpath,
data: imageSrc,
encoding: 'base64',
success (res) {
console.log(res) //保存到手机相册
wx.saveImageToPhotosAlbum({
filePath: Imgpath,
success(res) {
console.log(res)
wx.showToast({
title: '保存成功',
icon: 'success'
})
},
fail:function(err){
console.log("失败了")
console.log(err)
}
}) }
})
},

存储的话上面就可以实现了,下面是如果需要,删除文件的方法

项目中有遇到过,因为接口返回的画海报的图片是base64的图片,需要先存为本地文件才可以画图,canvas画完海报素材还在临时文件中,不一会就满了,这时候就需要将临时文件中不需要的文件删除了,就用到如下方法:

Object wx.env

小程序环境变量对象

wx.env.USER_DATA_PATH

文件系统中的用户目录路径

let fs = wx.getFileSystemManager()
//获取文件 Stats 对象
fs.stat({
// `${}` 是es6中新增的字符串方法
// ` 返单引号
path: `${wx.env.USER_DATA_PATH}`,
recursive: true,
success: res => {
//获取到stats对象 //Object.keys(要返回其枚举自身属性的对象) 返回一个由一个给定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和正常循环遍历该对象时返回的顺序一致
Object.keys(res.stats).forEach(path => {
var stats = res.stats[path] //删除指定路径的文件
fs.unlink({
filePath:`${wx.env.USER_DATA_PATH}`+stats.path,
success:function(res){
//删除成功
},
fail:function(res){
//删除失败
}
}) })
},
fail:res=>{
//失败
}
})

获取的stats对象:



Object.keys(res.stats):

最新文章

  1. linux 网卡启动方法
  2. ActiveReports 报表应用教程 (1)---Hello ActiveReports
  3. JavaScript---Ajax和函数回调,异步编程
  4. 区分总结innerHeight与clientHeight、innerWidth与clientWidth、scrollLeft与pageXOffset等属性
  5. ADO.net 实体类 、数据访问类
  6. 开源自己的一个小android项目(美女撕衣服游戏)
  7. iis7/7.5设置上传文件最大大小
  8. shell for循环+case的脚本(监控程序状态)
  9. Umbraco学习2------数据类型
  10. __iomem解析
  11. Python复习笔记(六)网络编程(udp/tcp)
  12. Docker(十五)-Docker的数据管理(volume/bind mount/tmpfs)
  13. linux修改文件打开最大数(ulimit命令)
  14. 【转】java 线程的几种状态
  15. iOS - 系统权限(关键时刻很有用的)
  16. css3 实现圆角边框的border-radius属性和实现阴影效果的box-shadow属性
  17. windows10企业版2016长期服务版激活 -------转
  18. SPOJ375 Query on a tree 【倍增,在线】
  19. oracle ORA-12545:因目标主机或对象不存在
  20. javascript 构造函数方式定义对象 (转载)

热门文章

  1. java多线程6:ReentrantLock
  2. Oracle 函数高级查询
  3. M-SOLUTIONS Programming Contest 2021(AtCoder Beginner Contest 232) 题解
  4. java对象与类
  5. Flask与Django的比较
  6. LuoguP7679 [COCI2008-2009#5] JABUKA 题解
  7. Stun协议实现
  8. git提交忽略文件.gitignore内容
  9. JAVA使用多线程进行数据处理
  10. JAVA微信支付——企业付款(企业向微信用户个人付款、转账)