问题: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):

微信小程序base64图片保存到手机相册的更多相关文章

  1. 微信小程序 base64 图片 canvas 画布 drawImage 实现

    在微信小程序中 canvas drawImage API 传入的第一个参数是 imageResource 图片资源路径,这个参数通常由从相册选择图片 wx.chooseImage 或 wx.getIm ...

  2. 微信小程序 base64图片在canvas上画图

    上代码 wxml <canvas canvas-id="myCanvas" style="width:400px;height:400px;">&l ...

  3. 微信小程序裁剪图片成圆形

    代码地址如下:http://www.demodashi.com/demo/14453.html 前言 最近在开发小程序,产品经理提了一个需求,要求微信小程序换头像,用户剪裁图片必须是圆形,也在gith ...

  4. 微信小程序动态生成保存二维码

    起源:最近小程序需要涉及到一些推广方面的功能,所以要写一个动态生成二维码用户进行下载分享,写完之后受益良多,特此来分享一下: 一.微信小程序动态生成保存二维码 wxml: <view class ...

  5. 微信小程序实现图片是上传、预览功能

    本文实例讲述了微信小程序实现图片上传.删除和预览功能的方法,分享给大家供大家参考,具体如下: 这里主要介绍一下微信小程序的图片上传图片删除和图片预览 1.可以调用相机也可以从本地相册选择 2.本地实现 ...

  6. 微信小程序点击保存图片到本地相册——踩坑

    在微信小程序中要保存图片到本地相册,需要获取相册权限. 总之整个功能实现下来需要如下几个小程序的API:wx.getSetting,wx.authorize,wx.openSetting,wx.dow ...

  7. 小程序base64图片格式保存至手机相册

    // 保存图片至相册 saveImg() { //获取文件管理器对象 const fs = wx.getFileSystemManager() //文件保存路径 const Imgpath = wx. ...

  8. 微信小程序之图片base64解码

    不知道大家在做微信小程序的时候遇到base64解码的问题,我之前在做微信小程序的时候遇到base64解析图片一直有问题,所以在这里把遇到的问题和解决方案在这里记录一下: 在平时的项目中我们是直接用ba ...

  9. 微信小程序 wx.uploadFile在安卓手机上面the same task is working问题解决

    微信小程序上传图片的时候,如果是多图片上传,一般都是直接用一个循环进行wx.uploadFile 这个在电脑上面测试与苹果手机上面都不会有什么问题 但当用安卓测试的时候,你会发现小程序会提示一个the ...

随机推荐

  1. 通过Docker部署Java项目的日志输出到宿主机指定目录

    之前写过2篇关于Docker部署的文章: 1.超!超!超简单,Linux安装Docker 2.Docker通过阿里云镜像仓库使用Gitlab_CI部署SpringBoot项目 用上篇博客部署Java程 ...

  2. CF1064A Make a triangle! 题解

    Content 有三条长度分别为 \(a,b,c\) 的线段.你可以在一个单位时间内将一条线段的长度增加 \(1\),试求出能使这三条线段组成一个三角形的最短时间. 数据范围:\(1\leqslant ...

  3. java 输入输出IO流 字节流| 字符流 的缓冲流:BufferedInputStream;BufferedOutputStream;BufferedReader(Reader in);BufferedWriter(Writer out)

    什么是缓冲流: 缓冲流的基本原理,是在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率. 图解: 1.字节缓冲流BufferedInputStr ...

  4. 金山云主机centos7.4根目录挂载文件书写错误无法进入系统解决办法

    由于/etc/fstab写错,根目录无法挂载,开机提示如下 处理办法: 根据提示输入root密码: 执行mount -o remount,rw /重新挂载根目录. vim 修改挂载文件 reboot重 ...

  5. SQL Server日志恢复还原数据

    通过日志还原,首先要注意的是: 1,在数据库更新和删除之前有一个完整的备份. 2,在更新和删除之后,做一个日志备份. 3,该日志只能用于还原数据库备份和日志备份时间之间的数据. 下面看整个数据库备份和 ...

  6. Learning to Sample

    此处主要提出几个疑问和想法: 疑问: 为什么需要这个匹配过程?虽然G可能不是P的子集,但是为什么一定需要他是子集呢? 如果一定要匹配的话,匹配过程是没法反向传播的,所以只可以在推理阶段使用,那么这个推 ...

  7. c++设计模式概述之访问者

    代码写的不够规范,目的是为了缩短篇幅,实际中请注意. 参看: http://c.biancheng.net/view/1397.html 1.概述 类比生活中的场景,购物商场中的商品.顾客.收营员.商 ...

  8. 【九度OJ】题目1124:Digital Roots 解题报告

    [九度OJ]题目1124:Digital Roots 解题报告 标签(空格分隔): 九度OJ 原题地址:http://ac.jobdu.com/problem.php?pid=1124 题目描述: T ...

  9. 【LeetCode】998. Maximum Binary Tree II 解题报告(C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 递归 日期 题目地址:https://leetcod ...

  10. 【LeetCode】437. Path Sum III 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 DFS + DFS BFS + DFS 日期 题目地 ...