需求描述

微信小程序中,下载一个报告文件,直接可获取到的是报告图片的base64格式。

参考文章

1、微信小程序实现图片下载功能
2、微信小程序把base64的图片保存到手机相册

代码实现

1、wxml

样式根据自己的需要调

<view><!--在这个view里面可以显示报告图片--><view style="width:100%;height:240px"><image src="{{report}}" style="width: 80%; height: 220px; margin-left:10%"></image></view><!--在这个view里面有一个下载报告的按钮--><view><view bindtap="downloadReport">下载报告</view></view>
</view>

2、.js

Page({/*** 页面的初始数据*/data: {report:"",base64:"",},/*** 生命周期函数--监听页面加载*/onLoad: function (options) {const that = this;//调用接口,获取图片的base64var base = that.getReportFile();//赋值that.setData({base64: base,report: "data:image/png;base64,"+that.data.base64})},//将base64图片文件保存至用户系统相册downloadReport(){const that = this;var filepath = wx.env.USER_DATA_PATH+'/test.png';//获取文件管理器对象var aa = wx.getFileSystemManager();aa.writeFile({filePath: filepath,data: that.data.base64,encoding:'base64',success: res => {wx.showLoading({title: '正在保存...',mask: true});//保存图片到相册wx.saveImageToPhotosAlbum({filePath: filepath,success: function (res) {wx.hideLoading();wx.showToast({title: '保存成功!',icon: 'success',duration: 2000//持续的时间})},fail: function (err) {wx.hideLoading();if(errerrMsg === "saveImageToPhotosAlbum:fail:auth denied" || err.errMsg === "saveImageToPhotosAlbum:fail auth deny" || err.errMsg === "saveImageToPhotosAlbum:fail authorize no response"){wx.showModal({title: '提示',content: '需要您授权保存相册',showCancel: false,success: modalSuccess => {wx.openSetting({success(settingdata) {console.log("settingdata", settingdata)if (settingdata.authSetting['scope.writePhotosAlbum']) {wx.showModal({title: '提示',content: '获取权限成功,再次点击下载按钮进行保存',showCancel: false,})} else {wx.showModal({title: '提示',content: '获取权限失败,将无法保存到相册哦~',showCancel: false,})}},fail(failData) {console.log("failData", failData)},complete(finishData) {console.log("finishData", finishData)}})}})}}})}, fail: err => {console.log(err)}})}
})

---------------------2022/06/23修改

变化

获取到报告数据流后,先用writeFile将base64转为图片,将图片地址放到image组件src属性中。

参考文章

微信小程序中base64转换成图片;uni-app小程序base64转图片;微信小程序base64文件转图片;微信小程序base64图片转图片

代码修改

1、.js

   Page({/*** 页面的初始数据*/data: {report:'',},/*** 生命周期函数--监听页面加载*/onLoad: function (options) {const that = this;//调用接口,获取图片的base64var base = that.getReportFile();that.base64ToSrc(base);},//将base64转为图片base64ToSrc(base64) {const that = this;//获取文件管理器对象var fsm = wx.getFileSystemManager();fsm.writeFile({filePath,data: base64,encoding: 'base64',success() {that.setData({report:filePath})},fail() {console.log('ERROR');},});   },//将base64图片文件保存至用户系统相册downloadHsjcReport(){const that = this;wx.showLoading({title: '正在保存...',mask: true});//保存图片到相册wx.saveImageToPhotosAlbum({filePath: that.data.report,success: function (res) {wx.hideLoading();wx.showToast({title: '保存成功!',icon: 'success',duration: 2000//持续的时间})},fail: function (err) {wx.hideLoading();if(err.errMsg === "saveImageToPhotosAlbum:fail:auth denied" || err.errMsg === "saveImageToPhotosAlbum:fail auth deny" || err.errMsg === "saveImageToPhotosAlbum:fail authorize no response"){wx.showModal({title: '提示',content: '需要您授权保存相册',showCancel: false,success: modalSuccess => {wx.openSetting({success(settingdata) {console.log("settingdata", settingdata)if (settingdata.authSetting['scope.writePhotosAlbum']) {wx.showModal({title: '提示',content: '获取权限成功,再次点击下载按钮进行保存',showCancel: false,})} else {wx.showModal({title: '提示',content: '获取权限失败,将无法保存图片到相册',showCancel: false,})}},fail(failData) {console.log("failData", failData)},complete(finishData) {console.log("finishData", finishData)}})}})}}})}
})

【微信小程序】将base64图片保存至本地相关推荐

  1. 微信小程序点击图片保存到相册

    小程序实现点击图片保存到相册 温馨提示:小程序图片在本地保存成功后放到线上失效,应该是没有设置合法的文件下载域名 // 下载事件函数bindImage: function (e) {var url = ...

  2. 微信小程序将base64图片格式保存至手机相册

    // 保存图片 let settingWritePhotosAlbum = false; export const saveImg = function(url, callback ) {//获取文件 ...

  3. 微信小程序中base64图片的显示与保存

    当我们拿到如下base64格式的数据时: 显示 使用image标签,src属性添加data:image/png;base64, (注意:若imgData返回数据中含有data:image/png;ba ...

  4. 微信小程序长按图片保存至相册

    效果图: 描述: 「长按图片」,是否授权保存图片or视频到相册,「授权成功」,点击「保存到相册」即可完成. 代码: wxml <image src="{{imgSrc}}" ...

  5. 微信小程序-长按图片保存到相册

    首页需要通过 wx.getSetting 先查询一下用户是否授权了写入相册权限: 其次对于网络图片,可调用wx.downloadFile下载文件资源到本地: 然后非网络图片,可以调用wx.getIma ...

  6. 用canvas绘制微信小程序海报页面并保存相册-适用微信原生

    微信小程序绘制海报并保存相册 tip:代码中使用的是uni的api 如果使用原生微信小程序开发,可以把uni更换成wx使用 文章目录 微信小程序绘制海报并保存相册 前言 一.分析需求 二.准备数据 三 ...

  7. android可拖拽九宫格,微信小程序实现九宫格图片拖拽

    (在真机上的效果就不演示了,是差不多的) 实现思路 布局 在这里运用到了微信小程序的moveable-area和moveable-view两个标签. moveable-area是可拖拽的区域,需要设置 ...

  8. 微信小程序中进行图片压缩

    微信小程序中进行图片压缩 问题: 一般情况下,小程序在进行拍照识别的时候,上传图片的大小会使小程序出现冗余,这个时候,为了减少小程序的冗余 并且使上传的图片可以分辨出该图片中的内容是那些内容,我们就需 ...

  9. 微信小程序内拖动图片实现移动、放大、旋转

    最近接到一个任务,在微信小程序内拖动图片组件实现移动.放大.旋转,并记录这些图片的移动位置,放大比例,旋转角度,在一个画布上生成一张图片,最后保存到手机相册. 我的具体实现思路是这样的:(文章底部留有 ...

最新文章

  1. 力扣(LeetCode)刷题,简单题(第15期)
  2. 无线节能组信标为什么会自动切换? 排查故障的过程真的像谜一样无法解释
  3. 一个简单的记事本程序
  4. fedora 20 PIL
  5. 博后招募 | 新加坡国立大学WING实验室招募自然语言处理方向博士后
  6. linux常用命令和选项
  7. 2009年4月计算机网络原理,全国2009年4月高等教育自学考试计算机网络原理
  8. 什么叫死锁?死锁案例?死锁必须满足哪些条件?如何定位死锁问题?有哪些解决死锁策略?哲学家问题?
  9. linux svn 面板,Linux下SVN服务器搭建(CentOS+Subversion)
  10. 旋转轨迹_谁是最可怕的压轴题?——直线运动轨迹
  11. Theano 中文文档 0.9 - 1. 欢迎
  12. Windows XP远程桌面控制图文教程
  13. 信号量内核对象 semaphore
  14. 【HDU_P3530】Subsequence
  15. 08-微信小程序商城 销售排行(微信小程序商城开发、小程序毕业设计、小程序源代码)(黄菊华-微信小程序开发教程)
  16. 图解 FAT 文件系统基础知识
  17. 日期转农历日期的一个插件
  18. 3D灯光教程仅需三个步骤,用ThingJS体验极速开发!
  19. 已声明“##”,但从未读取其值,解决办法
  20. 百度文库文档(文字和图片)

热门文章

  1. 低速自动驾驶:新创公司弯道超车 Waymo 的最佳方法?
  2. 辅导资料 不定方程的解法
  3. 镁光 M4 128G 在H61 上IDE,AHCI测试
  4. java开发门磁系统,门磁传感器工作原理及门磁系统在智能家居中的应用
  5. 单片机实验秒表设计程序c语言,单片机数字计时器的系统设计与型式试验
  6. Discuz密码 加密方式
  7. 根据照片查找地理位置
  8. 计算机四级网络工程师学霸笔记,学霸总结,这样做英语四级轻松过
  9. TrueNAS做为海康摄像头NAS储存详细配置
  10. 写在2010年最后一晚,我的工作总结